   }
 
   private func commonInit() {
-    contentView = imageView
+    contentView = imageContentView
+    setupConstraints()
+  }
+
+  private func setupConstraints() {
+    blurView.snp_makeConstraints { make in
+      make.edges.equalTo(imageContentView)
+    }
+
+    imageView.snp_makeConstraints { make in
+      make.edges.equalTo(imageContentView)
+    }
+
+    backgroundImageView.snp_makeConstraints { make in
+      make.edges.equalTo(imageContentView)
+    }
   }
 
   override func didAppear() {
     super.didAppear()
     imageView.startAnimating()
+    backgroundImageView.startAnimating()
   }
 
   override func didDisappear() {
     super.didDisappear()
     imageView.stopAnimating()
+    backgroundImageView.stopAnimating()
   }
 }

  override var viewModel: LinkItemViewModel? {
    didSet {
      guard let imageViewModel = viewModel as? LinkItemImageViewModel else { return }
      imageView.kf_setImageWithURL(imageViewModel.imageURL)
    }
  }

  // MARK: - Views
  private lazy var imageView: AnimatedImageView = {
    let imageView = AnimatedImageView()
    imageView.autoPlayAnimatedImage = false
    imageView.contentMode = .ScaleAspectFill

    imageView.framePreloadCount = 1
    imageView.clipsToBounds = true
    return imageView
  }()

  private lazy var blurView: UIVisualEffectView = {
    return UIVisualEffectView(effect: UIBlurEffect(style: .Dark))
  }()

  // MARK - Initializers
