Dependency Invertion Principle