DI implementation