added counter caches