      Luis Padron
      */
     @objc open var isAnimating: Bool {
-        get { return (self.layer.animation(forKey: "value") != nil) ? true : false }
+        get {
+            return (self.layer.animation(forKey: .value) != nil) ? true : false
+        }
     }
 
     /**

     */
    @objc open func startProgress(to value: ProgressValue, duration: ProgressDuration, completion: ProgressCompletion? = nil) {
        if isAnimating {
            self.value = self.currentValue ?? self.value
            self.layer.removeAnimation(forKey: "value")
        }

        self.ringLayer.animated = duration > 0
        self.ringLayer.animationDuration = duration
        self.ringLayer.speed = 1.0
        self.ringLayer.timeOffset = 0.0
        self.ringLayer.beginTime = 0.0

        CATransaction.begin()
        CATransaction.setCompletionBlock {

    func removeAnimation(forKey key: AnimationKeys) {
        self.removeAnimation(forKey: key.rawValue)
    }

    func animation(forKey key: AnimationKeys) -> CAAnimation? {
        return self.animation(forKey: key.rawValue)
    }

    func value(forKey key: AnimationKeys) -> Any? {
        return self.value(forKey: key.rawValue)
    }
}

/**
