private Object handleStruct(Object tag, int fields) throws IOException {
        ReadHandler h = lookup(handlerLookup, tag);
        if (h == null)
            h = (ReadHandler) standardExtensionHandlers.get(tag);
        if (h == null)
            return new TaggedObject(tag, readObjects(fields));
        else
            return h.read(this, tag, fields);
    }