         return self.startingValue + updateVal * (self.destinationValue - self.startingValue)
     }
 
-    open func updateValue(_ timer: Timer) {
+    public func updateValue(_ timer: Timer) {
         // update progress
         let now = Date.timeIntervalSinceReferenceDate
         self.progress = self.progress + now - self.lastUpdate

}

//MARK: - EFCountingLabel
open class EFCountingLabel: UILabel {

    open var format = "%f"
    open var method = EFLabelCountingMethod.linear
    open var animationDuration = TimeInterval(2)
    open var formatBlock: ((CGFloat) -> String)?
    open var attributedFormatBlock: ((CGFloat) -> NSAttributedString)?
    open var completionBlock: (() -> Void)?

    fileprivate var startingValue: CGFloat!
    fileprivate var destinationValue: CGFloat!

    fileprivate var timer: CADisplayLink?
    fileprivate var counter: UILabelCounter = UILabelCounterLinear()

    public func countFrom(_ startValue: CGFloat, to endValue: CGFloat) {
        self.countFrom(startValue, to: endValue, withDuration: self.animationDuration)
    }

    public func countFrom(_ startValue: CGFloat, to endValue: CGFloat, withDuration duration: TimeInterval) {
        self.startingValue = startValue
        self.destinationValue = endValue

