more refactoring: StringStreamer

I'm not positive this is correct, but it feels like an improvement to me, and it passes the tests.