         }
     }
 
-    fileprivate func setTextValue(_ value: CGFloat) {
+    private func setTextValue(_ value: CGFloat) {
         if let tryAttributedFormatBlock = self.attributedFormatBlock {
             self.attributedText = tryAttributedFormatBlock(value)
         } else if let tryFormatBlock = self.formatBlock {

        }
    }

    fileprivate func setFormat(_ format: String) {
        self.format = format
        self.setTextValue(self.currentValue())
    }

    fileprivate func runCompletionBlock() {
        if let tryCompletionBlock = self.completionBlock {
            tryCompletionBlock()
            

    public var attributedFormatBlock: ((CGFloat) -> NSAttributedString)?
    public var completionBlock: (() -> Void)?

    private var startingValue: CGFloat!
    private var destinationValue: CGFloat!
    private var progress: TimeInterval!
    private var lastUpdate: TimeInterval!
    private var totalTime: TimeInterval!
    private var easingRate: CGFloat!

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

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