imho it is gross to hide the client into the model like this, especially since it is also used by service_binding.  i realize this is inherited from current code not a new design, but maybe this is a good opportunity to refactor?