async return wrapping