 @IBDesignable
 open class RangeSlider: UIControl {
     
-    public typealias BeganEditingCallback = () -> Void
+    public typealias BeganTrackingCallback = () -> Void
     public typealias ValueChangedCallback = (_ minValue: Int, _ maxValue: Int) -> Void
     public typealias ValueFinishedChangingCallback = (_ minValue: Int, _ maxValue: Int) -> Void
     public typealias MinValueDisplayTextGetter = (_ minValue: Int) -> String?

        updateLayerFrames()
    }
    
    open func setBeganEditingCallback(_ callback: BeganEditingCallback?) {
        self.beganEditingCallback = callback
    }
    
    open func setValueChangedCallback(_ callback: ValueChangedCallback?) {

    }

    open override func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {
        beginTrackLocation = touch.location(in: self)
        if minValueThumbLayer.frame.contains(beginTrackLocation) {
            minValueThumbLayer.isHighlight = true
        } else if maxValueThumbLayer.frame.contains(beginTrackLocation) {
            maxValueThumbLayer.isHighlight = true
        } else {
            let distanceFromMinLayer = abs(minValueThumbLayer.frame.midX - beginTrackLocation.x)
            let distanceFromMaxLayer = abs(maxValueThumbLayer.frame.midX - beginTrackLocation.x)
            minValueThumbLayer.isHighlight = distanceFromMinLayer < distanceFromMaxLayer
            maxValueThumbLayer.isHighlight = distanceFromMinLayer > distanceFromMaxLayer
        }
        beganTrackingCallback?()
        return true
    }

    open override func continueTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {
