add code generation tool