refactoring
Generating code