IoC and DI