this: organize the layers of your application code like the layers of an onion. Every layer of the onion is only coupled (or dependent upon) any layer deeper in the onion than itself.” –Kristopher Wilson http://kristopherwilson.com/2013/07/04/implementing-the-onion- architecture-in-php/
states that any method of an object should call only methods belonging to itself, any parameters that were passed in to the method, any objects it created, and any directly held component objects.”