 		didSet {
 			typer.shiftState = shiftState
 			shiftKey.shiftState = shiftState
+			if shiftState != oldValue {
+				let capitalized = shiftState != .Disabled
+				for letterKey in letterKeys {
+					letterKey.capitalized = capitalized
+				}
+			}
 		}
 	}
 	
 	// MARK: Keyboard
 	
 	let keyboard = Keyboard()
+	
+	// MARK: Letter Keys
+	
+	var letterKeys = LetterKey[]()
 	
 	// MARK: Special Keys
 	

	let returnKey = ReturnKey()
	
	let spacebar = Spacebar()
	
	// MARK: Lettered Keys
	
	let row1Letters = ["Q","W","E","R","T","Y","U","I","O","P"]
	let row2Letters = ["A","S","D","F","G","H","J","K","L"]
	let row3Letters = ["Z","X","C","V","B","N","M"]
	
	// MARK: Initialization


		
		var keys = KeyboardKey[][]()
		
		let row1Letters = ["Q","W","E","R","T","Y","U","I","O","P"]
		let row2Letters = ["A","S","D","F","G","H","J","K","L"]
		let row3Letters = ["Z","X","C","V","B","N","M"]
		
		var row1Keys = KeyboardKey[]()
		for letter in row1Letters {
			let letterKey = self.letterKeyWithLetter(letter)
			row1Keys.append(letterKey)
			letterKeys.append(letterKey)
		}
		keys.append(row1Keys)
		
		var row2Keys = KeyboardKey[]()
		for letter in row2Letters {
			let letterKey = self.letterKeyWithLetter(letter)
			row2Keys.append(letterKey)
			letterKeys.append(letterKey)
		}
		keys.append(row2Keys)
		
