tighten up csv parsing