DI Abstraction