added ReadLine()