implement caching of locators