updated client class design