begin a coroutine observable
make boost::coroutine an implementation detail