interface code generation