If module A interacts with module B which interacts with module C, A shouldnt need to know about C (transitive property).
Ex, we dont want to have to call
a.getB().getC().doSomething()
It should instead be written so that we just call
a.doSomething()