Uses map instead of async_apply