switch to task::await API