Implementing an asynchronous client on top of MpClient