Any problem in computer science can be solved with another level of indirection, except for the problem of too many layers of indirection.

  • The Fundamental Theorem of Software Engineering