do with async function