wrapAsync