I'm kind of dubious that this function belongs in this class.  Isn't InstanceDiscovery doing a version of canonicalization as well.  Maybe that would be a better place for this?