fixed protocol to inherit from NSObject instead of NSCacheDelegate