fix read()
improve peek()
wip