public void read(BufferedReader reader) throws IOException
    {
        modContainer.clear();

        String line;

        // Header
        line = reader.readLine();

        if(!"Individual Item".equals(line)) {
            throw new IOException("Wrong header: " + line);
        }

        // Version
        line = reader.readLine();

        if(!"v.1".equals(line)) {
            throw new IOException("Wrong version: " + line);
        }

        // Key
        key = reader.readLine();
        
        do {
            line = reader.readLine();
            if("End Of Item".equals(line) == false) {
                String tkey = line;

                if(tkey.startsWith("S")) {
                    line = reader.readLine();
                    modContainer.put(tkey, line);
                }

                if(tkey.startsWith("I")) {
                    line = reader.readLine();
                    modContainer.put(tkey, new Integer(Integer.parseInt(line)));
                }

                if(tkey.startsWith("T")) {
                    Triplet tri = new Triplet(reader);
                    modContainer.put(tkey, tri);
                }

            } else {
                break;
            }
        } while(true);
    }