use WebService::BaseClientRole to remove boilerplate http code