added CSV parsing