improve each_line