almost done with ASCII IO