Streamified

Note that this involved some tinkering with attributes marked private. I find
this unsavory and would love to see an implementation that didn't have this
wart.