         return CGFloat(bounds.height)
     }
     
-    override var frame: CGRect {
-        didSet {
-            updateLayerFrames()
-        }
-    }
-    
-    override init(frame: CGRect) {
+    override public var frame: CGRect {
+        didSet {
+            updateLayerFrames()
+        }
+    }
+    
+    override public init(frame: CGRect) {
         super.init(frame: frame)
         initializeLayers()
     }
     
-    required init?(coder: NSCoder) {
+    required public init?(coder: NSCoder) {
         super.init(coder: coder)
         initializeLayers()
     }
     
-    override func layoutSublayers(of: CALayer) {
+    override public func layoutSublayers(of: CALayer) {
         super.layoutSublayers(of:layer)
         updateLayerFrames()
     }

        return lowerThumbLayer.highlighted || upperThumbLayer.highlighted
    }
    
    override func continueTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {
        let location = touch.location(in: self)
        
        // Determine by how much the user has dragged

        }
    }
    
    @IBInspectable public var upperValue: Double = 0.8 {
        didSet {
            if upperValue > maximumValue {
                upperValue = maximumValue
