I'm personally ok with leaving this here. Given that we won't expose version negotiation and will do it transparently, I think it is ok to leave the domain object and the client used to perform that request hidden in this class.

This pattern is also used with the paged iterables, for example. In Openstack, Abiquo and others, we use internal classes to deserialize the pagination requests (see the [ParseImages](https://github.com/jclouds/jclouds-labs-openstack/blob/master/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/functions/internal/ParseImages.java#L55-L62) class in this project for an example) and keep the pagination internals hidden to the user.