         placeholderLabelConstraints = newConstraints
     }
     
-    func textDidChange() {
+    private func textDidChange() {
         placeholderLabel.hidden = !text.isEmpty
-    }
-    
-    override public func layoutSubviews() {
-        super.layoutSubviews()
     }
     
     override public func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {

        commonInit()
    }
    
    func commonInit() {
        NSNotificationCenter.defaultCenter().addObserver(self,
            selector: "textDidChange",
            name: UITextViewTextDidChangeNotification,

            context: &myContext)
    }
    
    private func updateConstraintsForPlaceholderLabel() {
        var newConstraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|-left-[placeholder(width)]-right-|",
            options: [],
            metrics: [
