moving async clients to wrap underlying clients and adding changes