read each line
lazy parse