print-advance has bad newline behavior. recursion...