         }
     }
 
-    // MARK: - public
+    private static let _Queue = dispatch_queue_create("swift.imageloader.queues.request", DISPATCH_QUEUE_SERIAL)
+
+    // MARK: - functions
     public func load(URL: URLLiteralConvertible, placeholder: UIImage? = nil, completionHandler:CompletionHandler? = nil) {
-        dispatch_async(UIImageView._Queue) { [weak self] in
+        enqueue { [weak self] in
             guard let wSelf = self else { return }
 
             wSelf.cancelLoading()

            return
        }

        let identifier = hash
        dispatch_async(UIImageView._Queue) { [weak self] in
            guard let wSelf = self else { return }

            let block = Block(identifier: identifier, completionHandler: handler)


            wSelf.URL = URL
        }

        enqueue(block)
    }

    private func enqueue(block: () -> Void) {
        dispatch_async(UIImageView._Queue, block)
    }

    private func imageLoader_setImage(image: UIImage) {
