Simplified the async version