private static String doit(Object oms3) {
        StringBuffer b = new StringBuffer();
        Class cl = oms3.getClass();

        ComponentAccess a = new ComponentAccess(oms3);
        b.append("package " + cl.getPackage().getName() + ";\n");
        b.append("\n");
        b.append("import jams.data.*;\n");
        b.append("import jams.model.*;\n");
        b.append("\n");
        b.append("@JAMSComponentDescription(title = \"" + cl.getName() + "\", \n");
        b.append("                    description = \"" + "\",\n");
        b.append("                    author = \"" + "\")\n");
        b.append("public class JAMS" + cl.getSimpleName() + " extends JAMSComponent {\n");
        b.append("\n");
        b.append("    private " + cl.getName() + " oms3 = new " + cl.getName() + "();\n");
        b.append("\n");
        b.append("//Read access variables\n");
        for (Access acc : a.inputs()) {
            b.append("    @JAMSVarDescription(access = JAMSVarDescription.AccessType.READ,\n");
            b.append("       update = JAMSVarDescription.UpdateType.RUN,\n");
            b.append("       description = \"" + acc.getField().getAnnotation(Description.class).value() + "\")\n");
            b.append("    public " + types.get(acc.getField().getType()) + " " + acc.getField().getName() + ";\n");
            b.append("\n");
        }
        b.append("\n");
        b.append("//Write Access variables\n");
        for (Access acc : a.outputs()) {
            b.append("    @JAMSVarDescription(access = JAMSVarDescription.AccessType.WRITE,\n");
            b.append("       update = JAMSVarDescription.UpdateType.RUN,\n");
            b.append("       description = \"" + acc.getField().getAnnotation(Description.class).value() + "\")\n");
            b.append("    public " + types.get(acc.getField().getType()) + " " + acc.getField().getName() + ";\n");
            b.append("\n");
        }
        b.append("\n");
        b.append("    public void run() throws JAMSEntity.NoSuchAttributeException {\n");
        b.append("        // passing reads into in's\n");
        for (Access acc : a.inputs()) {
            b.append("        oms3." + acc.getField().getName() + " = " + acc.getField().getName() + ".getValue();\n");
        }
        b.append("\n");
        b.append("        // calling the oms3 execute\n");
        b.append("        oms3.execute();\n");
        b.append("\n");
        b.append("        // reading the outs\n");
        for (Access acc : a.outputs()) {
            b.append("        " + acc.getField().getName() + ".setValue(oms3." + acc.getField().getName() + ");\n");
        }
        b.append("    }\n");
        b.append("}\n");
        return b.toString();
    }