completed csv_parser