refactor generator
Merge branch 'refactor_generator'