Changed a lot of code to support http://api.dartlang.org/docs/releases/latest/dart_async/Stream.html