construct DI container and pass to kernel