re-wrote CSVParser to fix bugs with column names and empty fields