dependency injection working