         }
       case .Idle:
         reloadImageView.removeFromSuperview()
-        displayLink.paused = true
+        if let link = displayLink {
+          link.paused = true
+        }
       }
     }
   }

  }
  
  deinit {
   displayLink.invalidate()
  }
}


      switch state {
      case .Downloading(_):
        reloadImageView.removeFromSuperview()
        if let link = displayLink {
          link.paused = false
          link.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
        }
      case .Errored(_, _):
        if let link = displayLink {
          link.paused = true
        }
        progressLayer.hidden = true
        addSubview(reloadImageView)
        if let image = delegate?.imageForReloadState(self) {
