Changed to use LineReader