renamed AbstractClient to AbstractAdapter