         addSubviews()
         addTargets()
         moreButton.hidden = true
-        attributedNormalTitle = followNormalAttributedTitle
-        attributedSelectedTitle = followSelectedAttributedTitle
-        mainButtonBackground.layer.borderColor = borderColor.CGColor
+        label.attributedText = styleText(config.name, color: config.normalTextColor)
         mainButtonBackground.layer.borderWidth = 1
+    }
+
+    public override func intrinsicContentSize() -> CGSize {
+        return showMareButton ? sizeWithMore : size
     }
 
     // MARK: IBActions


    private let size = CGSize(width: 90, height: 30)
    private let sizeWithMore = CGSize(width: 134, height: 30)

    private var followNormalBackgroundColor: UIColor = .whiteColor()
    private var followSelectedBackgroundColor: UIColor = .blackColor()

    private var establishedNormalBackgroundColor: UIColor = .blackColor()
    private var establishedSelectedBackgroundColor: UIColor = .grey4D()

    private var muteNormalBackgroundColor: UIColor = .redColor()
    private var muteSelectedBackgroundColor: UIColor = .redColor()

    lazy private var followNormalAttributedTitle: NSAttributedString = {
        return self.styleText("+ Follow", color: .blackColor())
    }()

    lazy private var followSelectedAttributedTitle: NSAttributedString = {
        return self.styleText("+ Follow", color: .whiteColor())
    }()

    lazy private var noiseNormalAttributedTitle: NSAttributedString = {
        return self.styleText("Noise", color: .whiteColor())
    }()

    lazy private var noiseSelectedAttributedTitle: NSAttributedString = {
        return self.styleText("Noise", color: .whiteColor())
    }()

    lazy private var friendNormalAttributedTitle: NSAttributedString = {
        return self.styleText("Friend", color: .whiteColor())
    }()

    lazy private var friendSelectedAttributedTitle: NSAttributedString = {
        return self.styleText("Friend", color: .whiteColor())
    }()

    lazy private var muteNormalAttributedTitle: NSAttributedString = {
        return self.styleText("Muted", color: .whiteColor())
    }()

    lazy private var muteSelectedAttributedTitle: NSAttributedString = {
        return self.styleText("Muted", color: .whiteColor())
    }()

    public private(set) var attributedNormalTitle = NSAttributedString(string: "")
    public private(set) var attributedSelectedTitle = NSAttributedString(string: "")
    private var normalBackgroundColor: UIColor = .whiteColor()
    private var selectedBackgroundColor: UIColor = .blackColor()
    private var borderColor: UIColor = .blackColor()

    private let contentContainer = UIView(frame: CGRectZero)
    private let label = UILabel(frame: CGRectZero)
    private let mainButton = UIButton(frame: CGRectZero)
    lazy private var moreButton: UIButton = {
        let button = UIButton.buttonWithType(.Custom) as! UIButton
        button.frame = CGRect(x:0, y: 0, width: 44, height: 30)
        button.setTitle("", forState: .Normal)

        relationshipDelegate?.relationshipTapped(userId, relationship: relationship) {
            [unowned self] (status, relationship) in
        }
    }

    // MARK: Private
