preprocess avoids creating a StringReader

- operates on an already parsed csv
refactor continuation handling into namespace