private State run2(final String program, final State s) {
        String java = convert2Java(program, s instanceof StatusState);
        StringBuilder builder = new StringBuilder();
        builder.append(
                "import de.vonloesch.brainfuck.State;import de.vonloesch.brainfuck.StatusState;\npublic class HelloWorld{\n ");
        if (s instanceof StatusState) {
            builder.append("public static void run(StatusState s){ byte add;");
        } else {
            builder.append("public static void run(State s){ byte add;");
        }

        builder.append(java);
        builder.append("}");

        Class bfClass = JavaCompilerCaller.compile("HelloWorld", builder.toString());

        if (bfClass != null) {
            try {
                if (s instanceof StatusState) {
                    bfClass.getDeclaredMethod("run", StatusState.class).invoke(null, s);
                } else {
                    bfClass.getDeclaredMethod("run", State.class).invoke(null, s);
                }

            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            } catch (SecurityException e) {
                e.printStackTrace();
            }
        }

        return s;
    }