need to rewrite CSVReader so it does not attempt to store each line in
memory, instead it should hash dictionaryid -> line number