public Object parse(String original) throws ValidatorException {
		LinkedHashMap<String, String> map = new LinkedHashMap<String,String>();
		String[] lines = original.split("\\n+");
		for (String line : lines) {
			String[] tokens = line.replaceFirst("^\\s+","").split("\\s+");

			if (tokens.length > 2)
				throw new ValidatorException("Invalid line: " + line);

			if (tokens.length == 0 || (tokens.length == 1 && tokens[0].isEmpty()))
				continue;
			
			String key,value;
			if (tokens.length == 2) {
				key = tokens[0];
				value = tokens[1];
			} else {
				key = " ";
				value = tokens[0];
			}

			if (map.containsKey(key))
				throw new ValidatorException("Duplicate key: " + key);

			map.put(key, value);
		}
		
		if (map.size() == 0)
			throw new ValidatorException("There must be at least one entry");
		
		return map;
	}