     return imageView
   }()
 
-  private lazy var backgroundImageView: AnimatedImageView = {
-    let imageView = AnimatedImageView()
-    imageView.autoPlayAnimatedImage = false
+  private lazy var backgroundImageView: UIImageView = {
+    let imageView = UIImageView()
     imageView.contentMode = .ScaleAspectFill
-    // Better performance while scrolling
-    imageView.framePreloadCount = 1
     imageView.clipsToBounds = true
     return imageView
-  }()
-
-  private lazy var blurView: UIVisualEffectView = {
-    return UIVisualEffectView(effect: UIBlurEffect(style: .Dark))
   }()
 
   // MARK - Initializers

  override var viewModel: LinkItemViewModel? {
    didSet {
      guard let imageViewModel = viewModel as? LinkItemImageViewModel else { return }
      imageView.kf_setImageWithURL(imageViewModel.imageURL, optionsInfo: [.Transition(.Fade(0.15))])
      backgroundImageView.kf_setImageWithURL(imageViewModel.imageURL)
    }
  }


  override func didAppear() {
    super.didAppear()
    imageView.startAnimating()
  }

  override func didDisappear() {
    super.didDisappear()
    imageView.stopAnimating()
  }
}

extension LinkImageCardView {

  /**
   Blurs an image in a background thread and then sets the image to the imageView in the main thread

   - parameter image:     The image to be blurred.
   - parameter imageView: The imageView in which to set the blurred image.
   */
  private static func blurImage(image: UIImage, imageView: UIImageView) {
    Async.background {
      let blurFilter = iOSBlur()
      let brightnessFilter = BrightnessAdjustment()
      brightnessFilter.brightness = -0.2
      let blurredImage = image.filterWithPipeline { (input, output) in
        input --> blurFilter --> brightnessFilter --> output
      }
      Async.main {
        imageView.image = blurredImage
      }
    }
  }
}
