fixed line-by-line processing