                 let processedImage = processor.processImage(image)
                 self?.imageTask(imageTask, didCompleteWithImage: processedImage, error: error)
             }
-            self.processingQueue.addOperation(operation)
+            self.configuration.processingQueue.addOperation(operation)
             self.executingTasks[imageTask] = ImageLoadState.Processing(operation)
         } else {
             self.imageTask(imageTask, didCompleteWithImage: image, error: error)

    
    private func sessionTask(sessionTask: ImageSessionTask, didCompleteWithData data: NSData?, error: ErrorType?) {
        if let data = data {
            self.decodingQueue.addOperationWithBlock { [weak self] in
                let image = self?.configuration.decoder.imageWithData(data)
                self?.sessionTask(sessionTask, didCompleteWithImage: image, error: error)
            }

    public var dataLoader: ImageDataLoading
    public var decoder: ImageDecoding
    public var maxConcurrentTaskCount = 8
    public var decodingQueue = NSOperationQueue(maxConcurrentOperationCount: 1)
    public var processingQueue = NSOperationQueue(maxConcurrentOperationCount: 2)
    
    public init(dataLoader: ImageDataLoading, decoder: ImageDecoding = ImageDecoder()) {
        self.dataLoader = dataLoader
        self.decoder = decoder
