replace async with resurse