//this removes the need for reflection in the proxy <clinit> method
final Method[] methods = new Method[identifierCount];
for (Map.Entry<Method, Integer> entry : methodIdentifiers.entrySet()) {
methods[entry.getValue()] = entry.getKey();
}
MethodStore.METHODS.put(new ClassIdentifier(classFile.getName(), getClassLoader()), methods);
//add the bytecode to load the cached fields in the static constructor
CodeAttribute ca = staticConstructor.getCodeAttribute();
ca.getstatic(MethodStore.class.getName(), "METHODS", "Ljava/util/Map;");
ca.newInstruction(ClassIdentifier.class);