Dependency Inversion - Applying the principle