Tramp data is the data we just pass through a function or class so it again can be passed to its dependents.

Big changes may need to be made if we have a deep tree representing composition, where the top node needs to pass down some data to a leaf node

If the leaf node ever has a change of dependency, then we need to touch many different nodes on the way up to reach that data. This may indicate that we're passing implementation details down that we shouldn't need to know about.

A potential solution is the ServiceLocator.