         proxy.deleteBackward()
     }
     
+    // MARK: - Private functions
+    
+    private func setupConstraints() {
+        var nameKeyboardButtonWidthConstraint = NSLayoutConstraint(item: self.nameKeyboardButton, attribute: .Width, relatedBy: .Equal, toItem: self.view, attribute: .Width, multiplier: 1.0, constant: -8.0)
+        nameKeyboardButtonWidthConstraint.priority = 999
+        var nameKeyboardButtonLeftSideConstraint = NSLayoutConstraint(item: self.nameKeyboardButton, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1.0, constant: 4.0)
+        self.view.addConstraints([nameKeyboardButtonWidthConstraint, nameKeyboardButtonLeftSideConstraint])
+        
+        var surnameKeyboardButtonWidthConstraint = NSLayoutConstraint(item: self.surnameKeyboardButton, attribute: .Width, relatedBy: .Equal, toItem: self.view, attribute: .Width, multiplier: 1.0, constant: -8.0)
+        surnameKeyboardButtonWidthConstraint.priority = 999
+        var surnameKeyboardButtonLeftSideConstraint = NSLayoutConstraint(item: self.surnameKeyboardButton, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1.0, constant: 4.0)
+        self.view.addConstraints([surnameKeyboardButtonWidthConstraint, surnameKeyboardButtonLeftSideConstraint])
+        
+        var mailKeyboardButtonWidthConstraint = NSLayoutConstraint(item: self.mailKeyboardButton, attribute: .Width, relatedBy: .Equal, toItem: self.view, attribute: .Width, multiplier: 1.0, constant: -8.0)
+        mailKeyboardButtonWidthConstraint.priority = 999
+        var mailKeyboardButtonLeftSideConstraint = NSLayoutConstraint(item: self.mailKeyboardButton, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1.0, constant: 4.0)
+        self.view.addConstraints([mailKeyboardButtonWidthConstraint, mailKeyboardButtonLeftSideConstraint])
+        
+        var nextKeyboardButtonWidthConstraint = NSLayoutConstraint(item: self.nextKeyboardButton, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 42.0)
+        var nextKeyboardButtonLeftSideConstraint = NSLayoutConstraint(item: self.nextKeyboardButton, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1.0, constant: 4.0)
+        var nextKeyboardButtonBottomConstraint = NSLayoutConstraint(item: self.nextKeyboardButton, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 1.0, constant: -4.0)
+        self.view.addConstraints([nextKeyboardButtonWidthConstraint, nextKeyboardButtonLeftSideConstraint, nextKeyboardButtonBottomConstraint])
+        
+        var deleteKeyboardButtonWidthConstraint = NSLayoutConstraint(item: self.deleteKeyboardButton, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 42.0)
+        var deleteKeyboardButtonRightSideConstraint = NSLayoutConstraint(item: self.deleteKeyboardButton, attribute: .Right, relatedBy: .Equal, toItem: self.view, attribute: .Right, multiplier: 1.0, constant: -4.0)
+        var deleteKeyboardButtonBottomConstraint = NSLayoutConstraint(item: self.deleteKeyboardButton, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 1.0, constant: -4.0)
+        self.view.addConstraints([deleteKeyboardButtonWidthConstraint, deleteKeyboardButtonRightSideConstraint, deleteKeyboardButtonBottomConstraint])
+    }
+    
 }

        self.nameKeyboardButton.addTarget(self, action: "addName:", forControlEvents: .TouchUpInside)
        self.view.addSubview(self.nameKeyboardButton)
        
        var nameKeyboardButtonWidthConstraint = NSLayoutConstraint(item: self.nameKeyboardButton, attribute: .Width, relatedBy: .Equal, toItem: self.view, attribute: .Width, multiplier: 1.0, constant: -8.0)
        nameKeyboardButtonWidthConstraint.priority = 999
        var nameKeyboardButtonHeightConstraint = NSLayoutConstraint(item: self.nameKeyboardButton, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 41.0)
        var nameKeyboardButtonLeftSideConstraint = NSLayoutConstraint(item: self.nameKeyboardButton, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1.0, constant: 4.0)
        var nameKeyboardButtonTopConstraint = NSLayoutConstraint(item: self.nameKeyboardButton, attribute: .Top, relatedBy: .Equal, toItem: self.view, attribute: .Top, multiplier: 1.0, constant: 12.0)
        self.view.addConstraints([nameKeyboardButtonWidthConstraint, nameKeyboardButtonHeightConstraint, nameKeyboardButtonLeftSideConstraint, nameKeyboardButtonTopConstraint])

        // Surname keyboard button.
        self.surnameKeyboardButton = UIButton.buttonWithType(.System) as UIButton
        self.surnameKeyboardButton.setTitle(NSLocalizedString("Surname", comment: ""), forState: .Normal)

        self.nextKeyboardButton.layer.shadowOffset = CGSizeMake(0.0, 1.0)
        self.nextKeyboardButton.addTarget(self, action: "advanceToNextInputMode", forControlEvents: .TouchUpInside)
        self.view.addSubview(self.nextKeyboardButton)
        
        // Delete keyboard button.
        self.deleteKeyboardButton = UIButton.buttonWithType(.System) as UIButton
