Add basic codegen