observable + pull-streams to take advantage of existing throughs and sinks