 // Libs
 import SnapKit
 
-struct Rank {
-    let level: Int
-    let name: String
-    let backgroundImageName: String?
+public struct Rank {
+    public let level: Int
+    public let name: String
+    public let backgroundImageName: String?
 }
 
-class BubbleRankingIndicatorView: UIView {
+public class BubbleRankingIndicatorView: UIView {
     
-    struct State {
-        var ranks: [Rank]
-        var activeRankLevel: Int
-        var unachievedRankBackgroundColor: UIColor
-        var rankNameFont: UIFont
-        var rankNameColor: UIColor
+    public struct State {
+        public var ranks: [Rank]
+        public var activeRankLevel: Int
+        public var unachievedRankBackgroundColor: UIColor
+        public var rankNameFont: UIFont
+        public var rankNameColor: UIColor
     }
     
-    var state: State {
+    public var state: State {
         didSet {
             update(oldValue)
         }

        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:).")
    }
    

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