line-by-line analysis