Modularized CSV parsing (fixing #29 in the process)