async/await implementation