refactoring CSVParser to allow for better inheritance properties