Add async for external use