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

        }
      case .Idle:
        reloadImageView.removeFromSuperview()
        displayLink.paused = true
      }
    }
  }

  }
  
  deinit {
    if let link = displayLink {
      link.invalidate()
    }
  }
}

