what is the rational for async here?