- store paths on parents instead of containers - implement one central hub that all traversal paths and scopes get access to in order to abstract out access to common functions