added a cache for clusters and a clearCache() method