prepared framwork for using dependency injection containers