 
   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

  public var font: UIFont = UIFont.systemFontOfSize(15)
  public var alignment: NSTextAlignment = .Center
  public var shadow: TVOSButtonShadow?
}

// MARK: - TVOSButton

public extension TVOSButton {

  private func applyStyle(style: TVOSButtonStyle) {
    style.image?.applyImage(onImageView: tvosImageView)
    style.text?.applyText(onLabel: tvosTextLabel)
    style.title?.applyText(onLabel: tvosTitleLabel)
  }
}