Move CSV parsing into its own module.