I think this function can actually be `ResolveEndpoint(serviceNamespace, serviceName, serviceDestinationHost)` and that will allow you to plumb it into the proxyhandler and deal with both the "cheap" return from the "proxy to service IP" impl and the more expensive endpoint lookup handler without having to have the intervening generator interface which is a little odd to read.