         animation.fillMode = kCAFillModeForwards
         shapeLayer.add(animation, forKey: "animateInnerRing")
         
-        valueLabel.text = "\(self.oldValue)"
-        link = CADisplayLink(target: self, selector: #selector(self.animateLabel))
-        link.add(to: RunLoop.current, forMode: .commonModes)
+        if shouldShowValueText {
+            valueLabel.text = "\(oldValue)"
+            link = CADisplayLink(target: self, selector: #selector(self.animateLabel))
+            link.add(to: RunLoop.current, forMode: .commonModes)
+        }
     }
     
     
     @objc private func animateLabel() {
-        let dt = (link.timestamp - self.startTime) / animationDuration
+        let dt = (link.timestamp - startTime) / animationDuration
         
         if (dt >= 1.0) {
             valueLabel.update(withValue: value, valueIndicator: valueIndicator,

            return
        }
        
        let current = (self.value - self.oldValue) * CGFloat(dt) + self.oldValue
        
        valueLabel.update(withValue: current, valueIndicator: valueIndicator,
                          showsDecimal: showFloatingPoint, decimalPlaces: decimalPlaces)

            self.setNeedsDisplay()
        }
    }
    
    @IBInspectable public var outerRingCapStyle: Int = 1 {
        didSet {
            switch self.outerRingCapStyle{
            case 1: self.outStyle = CGLineCap.butt
            case 2: self.outStyle = CGLineCap.round
            case 3: self.outStyle = CGLineCap.square
