Implementing an asynchronous client on top of the existing one