added IO.readlines