     contentView.addSubview(spinnerCircleView)
     
     counterView.frame.size = contentView.frame.size
-    counterView.backgroundColor = .white
+    counterView.backgroundColor = counterViewBackgroundColor
     counterView.layer.cornerRadius = contentView.frame.size.width/2
     counterView.layer.shadowPath = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: frameSize.width, height: frameSize.height)).cgPath
-    counterView.layer.shadowColor = UIColor.black.cgColor
-    counterView.layer.shadowRadius = 8
-    counterView.layer.shadowOpacity = 0.5
+    counterView.layer.shadowColor = counterViewShadowColor
+    counterView.layer.shadowRadius = counterViewShadowRadius
+    counterView.layer.shadowOpacity = counterViewShadowOpacity
     counterView.layer.shadowOffset = CGSize.zero
     
     spinnerCircleView.frame.size = contentView.frame.size

      default:
        autoHideAnimation = .fadeOut
      }
      delay(countdownFrom, closure: { 
        hide(animation: autoHideAnimation, options: (duration: 0.5, delay: 0.2)) {
          if completion != nil {
            completion!()
          }
        }        
      })
    } else {
      if completion != nil {
        completion!()
      }
    }
    
  }
  
  public class func hide(animation: Animation, options: (duration: Double, delay: Double), completion: (()->())?) {
    let countdownView = CountdownView.shared
    
    countdownView.animate(countdownView.contentView, animation: animation,
                          options: (duration: options.duration, delay: options.delay), completion: nil)
    countdownView.animate(countdownView.backgroundView, animation: .fadeOut,
                          options: (duration: options.duration, delay: options.delay)) {
                            countdownView.timer.invalidate()
                            countdownView.removeFromSuperview()
                            if completion != nil {
                              completion!()
                            }
    }
  }
  

      animateStrokeColor(for: spinnerCircle, duration: 0.6, from: spinnerStartColor, to: spinnerEndColor)
    }
    if countdownFrom == 1 {
      CountdownView.shared.timedTask = DispatchWorkItem {
        self.spin(false)
      }
      DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.5, execute: CountdownView.shared.timedTask)
    }
    if countdownFrom > 0 {
      countdownFrom = countdownFrom - 1
    } else {
      timer!.invalidate()
    }
  }
  
