         }
     }
     
-    var disabled:Bool = false {
+    open var disabled:Bool = false {
         didSet {
             sliderBackgroundView.alpha = disabled ? 0.4 : 1.0
             self.isUserInteractionEnabled = !disabled

    }

    // public variables
    var titleHeight: CGFloat = 30
    var sliderWidth: CGFloat = 20
    var handleHeight: CGFloat = 20
    var handleWidth: CGFloat = 50
    
    // public inspectable variables
    @IBInspectable var title: String = "Hello" {
        didSet {
            titleLabel.text = title
        }
    }
    
    @IBInspectable var min: Double = 0 {
        didSet {
            minLabel.text = textForPosition(min)
        }
    }
    
    @IBInspectable var max: Double = 10 {
        didSet {
            maxLabel.text = textForPosition(max)
        }
    }
    
    @IBInspectable var step: Double = 1
    
    // colors
    @IBInspectable var handleColor: UIColor = UIColor.gray
    @IBInspectable var mainBackgroundColor: UIColor = UIColor.groupTableViewBackground
    @IBInspectable var titleBackgroundColor: UIColor = UIColor.lightGray
    @IBInspectable var sliderUnselectedColor: UIColor = UIColor.lightGray
    
    /**
     the position of the handle. The handle moves animated when setting the variable
    */
    var handlePosition:Double {
        set (newHandlePosition) {
            moveHandleToPosition(newHandlePosition, animated: true)
        }

        self.setup()
    }

    public override init(frame: CGRect) {
        super.init(frame: frame)
        
        self.setup()
