add async do_ with returned results