return createUsingReflection(instance.getClass());
return createUsingReflection(protoclass);
    protected Object nextInstance(Object instance) {        if (classOnly) {            return instance;        } else if (instance instanceof Factory) {            if (argumentTypes != null) {                return ((Factory)instance).newInstance(argumentTypes, arguments, callbacks);            } else {                return ((Factory)instance).newInstance(callbacks);            }        } else {            return createUsingReflection(instance.getClass());        }    }