utilities for observable asynchronous control flow