Refactoring of DI