initial revision
updates blocking stream name
adds passthrough channel
updates classes to use observable pattern