"If you try to hide the complexity of the system, you’ll end up with a more complex system. Layers of abstraction that serve to hide internals are never a good thing. Instead, the internals should be designed in a way such that they need no hiding.” — Aaron Griffin