Implemented control with Dependency inversion