private void readFields(final DataInputStream in) throws IOException {
		final int numFields = in.readUnsignedShort();

		fields = new Field[numFields];

		for (int i = 0; i < numFields; i++) {
			fields[i] = new Field(in, this);
		}
	}