Refactoring some of the streaming output stuff. More...
pulling out the streaming output stuff. its all abstract now