adding DI support