         }
     }
     
-    @IBInspectable public var progressColors: [UIColor]! {
+    @IBInspectable public var progressColors: [UIColor] {
         get {
             return progressLayer.colorsArray
         }

        }
    }
    
    private var radius: CGFloat! {
        didSet {
            progressLayer.radius = radius
        }

    
    private class KDCircularProgressViewLayer: CALayer {
        @NSManaged var angle: Double
        var radius: CGFloat = 0 {
            didSet {
                invalidateGradientCache()
            }
        }
        var startAngle: Double = 0
        var clockwise: Bool = true {
            didSet {
                if clockwise != oldValue {
                    invalidateGradientCache()
                }
            }
        }
        var roundedCorners: Bool = true
        var lerpColorMode: Bool = false
        var gradientRotateSpeed: CGFloat = 0 {
            didSet {
                invalidateGradientCache()
            }
        }
        var glowAmount: CGFloat = 0
        var glowMode: KDCircularProgressGlowMode = .forward
        var progressThickness: CGFloat = 0.5
        var trackThickness: CGFloat = 0.5
        var trackColor: UIColor = .black
        var progressInsideFillColor: UIColor = .clear
        var colorsArray: [UIColor] = [] {
            didSet {
                invalidateGradientCache()
            }
