Hierarchical DI using generators