Functional requirements: Classport.getDependencyInfo() can be called anywhere, and returns where we are in the dependency tree Non-Functional requirements: This goes fast, say < 10% overhead.