fix async function