dependency injection next generation