finished with readChar and readString