             options.deliveryMode = .highQualityFormat
             options.resizeMode = .exact
             
-            self.requestID = getImageDataManager().fetchImage(for: self, size: screenSize.toPixel(), options: options, contentMode: .aspectFit) { [weak self] image, info in
+            self.add(requestID: getImageDataManager().fetchImage(for: self, size: screenSize.toPixel(), options: options, contentMode: .aspectFit) { [weak self] image, info in
                 guard let strongSelf = self else { return }
                 
                 strongSelf.fullScreenImage = (image, info)
                 completeBlock(image, info)
-            }
+            })
         }
     }
     

                                 contentMode: PHImageContentMode = .aspectFit,
                                 completeBlock: @escaping (_ image: UIImage?, _ info: [AnyHashable: Any]?) -> Void) {
        if self.originalAsset != nil {
            self.requestID = getImageDataManager().fetchImage(for: self, size: size, options: options, contentMode: contentMode, completeBlock: completeBlock)
        } else {
            completeBlock(self.image, nil)
        }

     Fetch an AVAsset with a completeBlock and PHVideoRequestOptions.
     */
    @objc public func fetchAVAsset(options: PHVideoRequestOptions? = nil, completeBlock: @escaping (_ AVAsset: AVAsset?, _ info: [AnyHashable: Any]?) -> Void) {
        self.add(requestID: getImageDataManager().fetchAVAsset(for: self, options: options, completeBlock: completeBlock))
    }

    @objc public func cancelRequests() {
        objc_sync_enter(self)
        defer { objc_sync_exit(self) }
        
        if let requestIDs = self.requestIDs {
            for requestID in requestIDs {
                getImageDataManager().cancelRequest(requestID: requestID as! DKImageRequestID)
            }
            
            self.requestIDs?.removeAllObjects()
        }
    }
    
