code: public void load() {
          ClassLoader loader;
          Class c;
          Method m;
          Object[] tables;
  
          if (isLoaded()) {
              return;
          }
          loader = Mapper.class.getClassLoader();
          try {
              c = loader.loadClass(name);
          } catch (ClassNotFoundException e) {
              throw new IllegalStateException(name + ": cannot load class: " + e.getMessage(), e);
          }
          try {
              m = c.getMethod("load", new Class[]{});
          } catch (NoSuchMethodException e) {
              throw new IllegalStateException(e.getMessage(), e);
          }
          try {
              tables = (Object[]) m.invoke(null, new Object[] {});
          } catch (InvocationTargetException e) {
              throw new IllegalStateException(e.getTargetException().getMessage(), e);
          } catch (IllegalAccessException e) {
              throw new IllegalStateException(e.getMessage(), e);
          }
          parser = (Parser) tables[0];
          oag = (Oag) tables[1];
      }
docs: <p>Loads the mapper tables if not already done so. This method is usually invoked implicity
  by the various <code>run</code> methods. Don't call <code>load</code> explicitly unless
  you want to force loading of mapper tables.</p>
  
  <p>I tried to load the mapper from a background Thread started in the constructor. But
  the overall performance (of the jp example) was worse, probably because class loading
  is to fast (and out-performes the threading overhead).
  
  @throws IllegalStateException to indicate a class loading problem