                 var m = methods[i] = new MethodInfo()
                 m.method_id = i
                 var param_count:int = readU32()
-                m.returnType = names[readU32()]
+                m.returnType = nameFromU32()
                 m.paramTypes = []
                 for (var j:int=0; j < param_count; j++)
-                    m.paramTypes[j] = names[readU32()]
-                m.debugName = strings[readU32()]
+                    m.paramTypes[j] = nameFromU32()
+                m.debugName = stringFromU32()
                 m.flags = data.readByte()
                 if (m.flags & HAS_OPTIONAL)
                 {

                            break;
                        }
                        case OP_callstatic:
                            s += abc.methods[readU32()]
                            s += " (" + readU32() + ")"
                            break;
                        case OP_newclass:
                            s += abc.instances[readU32()]
                            break;
                        case OP_lookupswitch:
                            var pos = code.position-1;

            return   result & 0x0fffffff | data.readUnsignedByte()<<28;
        }

        function classFromU32()
        {
            return classes[readU32()]
        }

        function doubleFromU32()
        {
            return doubles[readU32()]
        }

        function intFromU32()
        {
            return ints[readU32()]
        }

        function uintFromU32()
        {
            return uints[readU32()]
        }

        function instanceFromU32()
        {
            return instances[readU32()]
        }

        function metadataFromU32()
        {
            return metadata[readU32()]
        }

        function methodFromU32()
        {
            return methods[readU32()]
        }

        function nameFromU32()
        {
            return names[readU32()]
        }

        function namespaceFromU32()
        {
            return namespaces[readU32()]
        }

        function nssetFromU32()
        {
            return nssets[readU32()]
        }

        function stringFromU32()
        {
            return strings[readU32()]
        }

        function dumpPool(name:String, pool:Array)
        {
            if(!doDumpPools)
