     }
     
     func updateProgress(_ percentComplete: Double) {
-        self.hudView.updateProgress(percentComplete)
-        self.hudView.updateProgressText(percentComplete)
+        self.hudView?.updateProgress(percentComplete)
+        self.hudView?.updateProgressText(percentComplete)
     }
     
     func finish() {
-        self.hudView.finish()
+        self.hudView?.finish()
+        self.hudView?.removeFromSuperview()
+        self.hudView = nil
+        
         self.link?.reset()
         self.dismissalLink?.reset()
         self.link = nil

        if self.dismissalLink != nil { return }
        
        self.link?.reset()
        self.hudView.setText(text: text ?? self.content?.completionText)
        
        if let d = deley {
            self.link = DisplayLink(d)
            self.link?.updateDurationCallback = { [weak self] percentComplete in
                self?.hudView.finishAllIfNeeded()
            }
            self.link?.completion = { [weak self] in
                self?.dismiss(duration, nil, text, completion)

        self.addSubview(self.backgroundView)
        self.allPin(subView: self.backgroundView)
        
        self.isHidden = true
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        
        self.hudView?.center = center
    }
    
    func show(content: VHUDContent) {
