 
     // MARK: - Appearance
 
-    @IBInspectable public var thumbImage: UIImage? {
+    @IBInspectable open var thumbImage: UIImage? {
         didSet {
             thumbViews.forEach {$0.image = thumbImage}
             let halfHeight = (thumbImage?.size.height ?? 2)/2 - 1 // 1 pixel for semi-transparent boundary
             trackView.layoutMargins = UIEdgeInsets(top: halfHeight, left: 0, bottom: halfHeight, right: 0)
         }
     }
-    @IBInspectable public var minimumImage: UIImage? {
+    @IBInspectable open var minimumImage: UIImage? {
         get {
             return minimumView.image
         }

        }
    }

    @IBInspectable public var minimumValue: CGFloat = 0     { didSet {adjustValuesToStepAndLimits()} }
    @IBInspectable public var maximumValue: CGFloat = 1     { didSet {adjustValuesToStepAndLimits()} }

    /// snap thumbs to specific values, evenly spaced. (default = 0: allow any value)
    @IBInspectable public var snapStepSize: CGFloat = 0     { didSet {adjustValuesToStepAndLimits()} }

    @IBInspectable public var thumbCount: Int {
        get {
            return thumbViews.count
        }

        setup()
    }

    override open func prepareForInterfaceBuilder() {
        // make visual editing easier
        layer.borderWidth = 0.5
        layer.borderColor = UIColor.lightGray.withAlphaComponent(0.5).cgColor
