Added Dependency Inversion