         public func removeAll(sources: Set<ImageCacheType> = [.memory, .disk]) {
             fatalError("Not implemented")
         }
+
+        // MARK: Encode/Decode (Private)
+
+        private func decodeImageData(_ data: Data, for request: ImageRequest) -> ImageContainer? {
+            let context = ImageDecodingContext(request: request, data: data, isCompleted: true, urlResponse: nil)
+            guard let decoder = pipeline.configuration.makeImageDecoder(context) else {
+                return nil
+            }
+            return decoder.decode(data, urlResponse: nil, isCompleted: true)?.container
+        }
+
+        private func encodeImage(_ image: ImageContainer, for request: ImageRequest) -> Data? {
+            let context = ImageEncodingContext(request: request, image: image.image, urlResponse: nil)
+            let encoder = pipeline.configuration.makeImageEncoder(context)
+            return encoder.encode(image, context: context)
+        }
     }
 }
 

            }
        }

        func decodeImageData(_ data: Data, for request: ImageRequest) -> ImageContainer? {
            let context = ImageDecodingContext(request: request, data: data, isCompleted: true, urlResponse: nil)
            guard let decoder = pipeline.configuration.makeImageDecoder(context) else {
                return nil
            }
            return decoder.decode(data, urlResponse: nil, isCompleted: true)?.container
        }

        public func storeCachedImage(_ container: ImageContainer, for request: ImageRequest, sources: Set<ImageCacheType> = [.memory, .disk]) {
            fatalError("Not implemented")
        }

        func storeCachedImageInMemoryCache(_ image: ImageContainer, for request: ImageRequest) {

        }

        public func storeCachedData(_ data: Data, for request: ImageRequest) {
            guard let dataCache = pipeline.configuration.dataCache else {
                return
            }
            let key = makeDiskCacheKey(for: request)
            dataCache.storeData(data, for: key)
        }

        public func removeCachedData(request: ImageRequest) {
