private List<Character> readTypes() {
		// the next byte should be a ','
		if (bytes[streamPosition] != 0x2C) {
			return null;
		}
		streamPosition++;
		// find out how long the list of types is
		int typesLen = lengthOfCurrentString();
		if (0 == typesLen) {
			return null;
		}

		// read in the types
		List<Character> typesChars = new ArrayList<Character>(typesLen);
		for (int i = 0; i < typesLen; i++) {
			typesChars.add((char) bytes[streamPosition++]);
		}
		return typesChars;
	}