private IRubyObject userUnmarshal() throws IOException {
String className = unmarshalObject().asJavaString();
ByteList marshaled = unmarshalString();
RubyModule classInstance = findClass(className);
if (!classInstance.respondsTo("_load")) {
throw runtime.newTypeError("class " + classInstance.getName() + " needs to have method `_load'");
}
RubyString data = RubyString.newString(getRuntime(), marshaled);
if (ivarsWaiting) {
defaultVariablesUnmarshal(data);