generation_structure