hierarchical generator
merge