Not part of this patch, just a question: The name `hasWith...` sounds a bit odd. A possible suggestion is `hasLinkForSiteId` similar to `hasTermForLanguage`.