start of code generation