better DI