     shapeLayer.add(strokeColorAnimation, forKey: "strokeColor")
   }
   
+  // MARK: Actions
+  
+  @objc fileprivate func didTapCloseButton() {
+    CountdownView.hide(animation: dismissStyleAnimation, options: (duration: 0.5, delay: 0), completion: currentCompletion)
+    CountdownView.shared.currentCompletion = nil
+    CountdownView.shared.timedTask.cancel()
+  }
+  
+  @objc fileprivate func didTapBackgroundView() {    
+    CountdownView.hide(animation: dismissStyleAnimation, options: (duration: 0.5, delay: 0), completion: currentCompletion)
+    CountdownView.shared.currentCompletion = nil
+    CountdownView.shared.timedTask.cancel()
+  }
+  
   // MARK: Util
   
   public func updateFrame() {

  
  // MARK: Properties
  
  fileprivate var timer: Timer!
  
  fileprivate var countdownFrom: Double! {
    didSet {

      })
    case .fadeInLeft:
      view.center.x = view.center.x - bounds.width
      UIView.animate(withDuration: options.duration, delay: options.delay, usingSpringWithDamping: 0.8,
                     initialSpringVelocity: 0.2, options: .curveEaseIn, animations: {
                      view.alpha = 1
                      view.center.x = view.center.x + self.bounds.width
      }, completion: { _ in
        if completion != nil {
          completion!()
