async: simplify monadic interface