adding levels of indirection/abstraction is a common engineering move, especially in software engineering.