line-by-line works