Async Refactor