Support for streaming

@smarterclayton updated and rebased as spoken.
There needed to be changes in both files and had to go through your Client changes to see what had changed, so it took a bit long.