DI principle