refactoring CSVReader and Parser