     
     // MARK: View
     
-    override func updateConstraints() {
+    override public func updateConstraints() {
         
         let width = bounds.width
         let height = bounds.height

        update(defaultState)
    }
    
    override init(frame: CGRect) {
        fatalError("init(frame:) has not been implemented. Use init(ranks:).")
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented. Use init(ranks:).")
    }
    

     Represents how much larger the active BubbleRankView
     will be than the inactive ones.
     */
    public let activeRankSizeMultiplier: CGFloat = 1.3
    
    private var rankViews = [BubbleRankView]()
    
    // MARK: Init
    
    public init(state: State) {
        self.state = state
        
        super.init(frame: CGRectZero)
