first step of DI refactor