         setup()
     }
     
-    required init?(coder aDecoder: NSCoder) {
+    required public init?(coder aDecoder: NSCoder) {
         super.init(coder: aDecoder)
         
         setup()
     }
     
-    func setup() {
+    private func setup() {
         let view = addOwnedViewFrom(nibNamed: String(ThumbSliderView.self))
         view.backgroundColor = .clearColor()
         

import UIKit

@IBDesignable
class ThumbSliderView: UIView {
    
    @IBOutlet weak var backgroundView: UIView!
    @IBOutlet weak var thumbView: UIView!
    @IBOutlet weak var powerOffLabel: UIView!
    @IBOutlet weak var backgroundLeadingConstraint: NSLayoutConstraint!

    override init(frame: CGRect) {
        super.init(frame: frame)

        setupThumbView()
    }
    
    private func setupThumbView() {
        let panGesture = UIPanGestureRecognizer(target: self, action: #selector(thumbViewWasPanned))
        thumbView.addGestureRecognizer(panGesture)
        panGesture.enabled = true
    }

    // MARK: - View Layout
    
    override public func layoutSubviews() {
        super.layoutSubviews()
        
        // TODO: rounded corners don't look quite right
