   public var font: UIFont = UIFont.systemFontOfSize(15)
   public var alignment: NSTextAlignment = .Center
   public var shadow: TVOSButtonShadow?
+
+  func applyText(onLabel label: UILabel) {
+    shadow?.applyShadow(onLayer: label.layer)
+    if let att = attributedText {
+      label.attributedText = att
+    } else {
+      label.text = text
+      label.textColor = color
+      label.font = font
+      label.textAlignment = alignment
+    }
+  }
 }
 
 // MARK: - TVOSButton

public extension TVOSButton {

  private func applyStyle(style: TVOSButtonStyle) {
    // TODO: Apply Style
  }
}

  private func commonInit() {
    // setup subviews
    tvosContainerView = UIView()
    tvosContainerView.translatesAutoresizingMaskIntoConstraints = false
    addSubview(tvosContainerView)
    tvosImageView = UIImageView()
    tvosImageView.translatesAutoresizingMaskIntoConstraints = false
    tvosContainerView.addSubview(tvosImageView)
    tvosTextLabel = UILabel()
    tvosTextLabel.translatesAutoresizingMaskIntoConstraints = false
    tvosContainerView.addSubview(tvosTextLabel)
    tvosTitleLabel = UILabel()
    tvosTitleLabel.translatesAutoresizingMaskIntoConstraints = false
    tvosContainerView.addSubview(tvosTitleLabel)
    // add state observer
    addObserver(self, forKeyPath: "state", options: .New, context: nil)
    // finalize
