generalized BlockingObservable and the execution hook further