                 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)
            }

    private var executingTasks = [ImageTask : ImageLoadState]()
    private var sessionTasks = [ImageRequestKey : ImageSessionTask]()
    private let queue = dispatch_queue_create("ImageLoader-InternalSerialQueue", DISPATCH_QUEUE_SERIAL)
    
    public init(configuration: ImageLoaderConfiguration) {
        self.configuration = configuration
