we now have char-by-char processing and things are getting fun