Haven't ran this so maybe it is optimized out - but does this create a new parser per line? 

Seems like the parsers could also just be objects since they aren't holding on to anything?