                             }
                         }
                         
-                        UIImageView.sharedImageCache().cacheImage(image, forRequest: URLRequest)
+                        UIImageView.sharedImageCache.cacheImage(image, forRequest: URLRequest)
                     }
                 },
                 failure: { [weak self] request, response, error in
                     if let strongSelf = self {
                         failure?(request, response, error)
-                        strongSelf.activeTask = nil
+                        strongSelf.activeRequest = nil
                     }
                 }
             )
             
-            self.activeTask = request.task
+            self.activeRequest = request
         }
     }
     
     public func cancelImageRequest() {
-        self.activeTask?.cancel()
+        self.activeRequest?.cancel()
     }
 }
 
 private var sharedImageDownloaderKey = "UIImageView.SharedImageDownloader"
 private var sharedImageCacheKey = "UIImageView.SharedImageCache"
-private var activeTaskKey = "UIImageView.ActiveTask"
+private var activeRequestKey = "UIImageView.ActiveRequest"

    {
        cancelImageRequest()
        
        if let image = UIImageView.sharedImageCache().cachedImageForRequest(URLRequest) {
            if let success = success {
                success(URLRequest, nil, image)
            } else {

        }
    }
    
    // MARK: Shared Class Properties
    
    public class var sharedImageCache: ImageCache {
        get {
            if let cache = objc_getAssociatedObject(self, &sharedImageCacheKey) as? ImageCache {
                return cache
            } else {
                struct Static { static let imageCache = ImageViewCache() }
                return Static.imageCache
            }
        }
        set(cache) {
            objc_setAssociatedObject(self, &sharedImageCacheKey, cache, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
        }
    }
    
    public class var sharedImageDownloader: ImageDownloader {
        get {
            if let downloader = objc_getAssociatedObject(self, &sharedImageDownloaderKey) as? ImageDownloader {
                return downloader
            } else {
                return ImageDownloader.defaultInstance
            }
        }
        set(downloader) {
            objc_setAssociatedObject(self, &sharedImageDownloaderKey, downloader, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
        }
    }
    
    // MARK: Private - Properties
    
    private var activeRequest: Request? {
        get {
            return objc_getAssociatedObject(self, &activeRequestKey) as? Request
        }
        set(request) {
            objc_setAssociatedObject(self, &activeRequestKey, request, UInt(OBJC_ASSOCIATION_RETAIN_NONATOMIC))
        }
    }
    
    // MARK: Remote Image Methods
