private ArrayList<String> parseRow(String row) {
		ArrayList<String> data = new ArrayList<>();

		String s = "";
		char expect = STRING_CONTAINER;
		for (int i = 0; i < row.length(); i++) {
			char c = row.charAt(i);
			switch (expect) {
			case STRING_CONTAINER:
				if (c != STRING_CONTAINER) {
					System.out.println(data);
					throw new RuntimeException("Illegal character (" + c + ")");
				}
				s = "";
				expect = (char) -1;
				break;
			case COLUMN_SEPERATOR:
				data.add(s);
				expect = STRING_CONTAINER;
				break;

			default:
				if (c != STRING_CONTAINER) {
					if (c == ESCAPE_CARACTER)
						s += row.charAt(++i);
					else
						s += c;
				} else
					expect = COLUMN_SEPERATOR;
				break;
			}
		}
		data.add(s);
		return data;
	}