code generation prototyping