     - returns: Self instance to support chaining.
     */
     public func responseError(handler: ErrorHandler) -> Self {
-        dispatch_async(handlerQueue) {
+        handlerQueue.addOperationWithBlock {
             if let taskResult = self.taskResult {
                 switch taskResult {
                 case .Failure(let error): handler(error)

    }
    
    /// Dispatch queue that queues up and dispatches handler blocks
    private let handlerQueue: dispatch_queue_t
    
    /// Session data task that refers the lifetime of the request.
    private var dataTask: NSURLSessionDataTask?

     - returns: Self instance to support chaining.
    */
    public func updateErrorUI(handler: ErrorHandler) -> Self {
        handlerQueue.addOperationWithBlock {
            if let taskResult = self.taskResult {
                switch taskResult {
                case .Failure(let error):
