add support for yielded promises