starting code generation