using dependency injection in order to register the services