added other async variations