use substr instead of direct modification
handle both errors and eof
unify timer and handle storage
ditch condvar
do not count on stringification
more signatures