private Accessor _initializeAccessor() throws Exception {
    if (deferFinish) {
      return null;
    }
    /**
     * Hot load the class we just generated.
     */
    Class cls = loadClass(className, cw.toByteArray());

    assert debug("[MVEL JIT Completed Optimization <<" + (expr != null ? new String(expr) : "") + ">>]::" + cls
        + " (time: " + (System.currentTimeMillis() - time) + "ms)");

    Object o;

    try {
      if (compiledInputs.size() == 0) {
        o = cls.newInstance();
      }
      else {
        Class[] parms = new Class[compiledInputs.size()];
        for (int i = 0; i < compiledInputs.size(); i++) {
          parms[i] = ExecutableStatement.class;
        }
        o = cls.getConstructor(parms).newInstance(compiledInputs.toArray(new ExecutableStatement[compiledInputs.size()]));
      }

      if (propNull) cls.getField("nullPropertyHandler").set(o, getNullPropertyHandler());
      if (methNull) cls.getField("nullMethodHandler").set(o, getNullMethodHandler());

    }
    catch (VerifyError e) {
      System.out.println("**** COMPILER BUG! REPORT THIS IMMEDIATELY AT http://jira.codehaus.org/browse/MVEL");
      System.out.println("Expression: " + (expr == null ? null : new String(expr)));
      throw e;
    }

    return (Accessor) o;
  }