don't cache as much metadata and use the cached NSURL resources. do a concurrent enumeration. protect access to self.dict with @synchronized