hierarchical generation types