this pretty much resolves most of the uncertainities: we now get a set of mutually dependent services, each of which is aware of each other member's capabilities, but accesses those only through this partner's API