private void readConstantPool(int count) throws IOException {
        for (int i = 0; i < count - magic1; i++) {
            int tag = readUShort(1, true);

            if (tag == 7) {
                Integer value = readUShort(2, true);

                Integer key = i + 2; // maybe 2 is 'magic1'

                classes.put(key, value);
            } else if (tag == 1) {
                Integer key = i + 2; // maybe 2 is 'magic1'

                int length = readUShort(2, true);
                String value = readString(length);
                strings.put(key, value);
            } else {
                int length = constantDataLengths.get(tag);
                skip(length);
            }
        }
    }