Use controller instead of factory to implement hierarchical controllers