preserved the async logic on execute