Dependency Inversion Principle Practice