 		}
 	}
 	
+	// MARK: Special Keys
+	
+	let shiftKey = ShiftKey()
+	
+	let deleteButton: UIButton = {
+		let button = UIButton.buttonWithType(.System) as UIButton
+		button.setTranslatesAutoresizingMaskIntoConstraints(false)
+		
+		button.setImage(UIImage(named: "Delete"), forState: .Normal)
+		
+		return button
+	}()
+	
+	let symbolKeyboardButton: UIButton = {
+		let button = UIButton.buttonWithType(.System) as UIButton
+		button.setTranslatesAutoresizingMaskIntoConstraints(false)
+		
+		button.setImage(UIImage(named: "Symbols"), forState: .Normal)
+		
+		return button
+	}()
+	
+	let nextKeyboardButton: UIButton = {
+		let button = UIButton.buttonWithType(.System) as UIButton
+		button.setTranslatesAutoresizingMaskIntoConstraints(false)
+		
+		button.setImage(UIImage(named: "Globe"), forState: .Normal)
+		
+		return button
+	}()
+	
+	let returnKey: UIButton = {
+		let button = UIButton.buttonWithType(.System) as UIButton
+		button.setTranslatesAutoresizingMaskIntoConstraints(false)
+		
+		button.contentEdgeInsets = UIEdgeInsets(top: 0, left: 8, bottom: 0, right: 8)
+		button.font = UIFont.systemFontOfSize(16)
+		button.setTitle(UIReturnKeyType.Default.simpleDescription(), forState: .Normal)
+		
+		return button
+	}()
+	
+	let spacebar = Spacebar()
+	
+	// MARK: Lettered Keys
+	
 	let row1 = KeyboardViewController.createRow()
 	let row2 = KeyboardViewController.createRow()
 	let row3 = KeyboardViewController.createRow()

        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated
    }

    override func textWillChange(textInput: UITextInput) {
		super.textWillChange(textInput)

	let row2Letters = ["A","S","D","F","G","H","J","K","L"]
	let row3Letters = ["Z","X","C","V","B","N","M"]
	
	class func createRow() -> UIView {
		let view = UIView()
		view.setTranslatesAutoresizingMaskIntoConstraints(false)
