diff --git a/org.eclipse.example.calc/src/org/eclipse/example/calc/internal/ui/swt/CalculatorUI.java b/org.eclipse.example.calc/src/org/eclipse/example/calc/internal/ui/swt/CalculatorUI.java
index c943519..08a19dc 100644
--- a/org.eclipse.example.calc/src/org/eclipse/example/calc/internal/ui/swt/CalculatorUI.java
+++ b/org.eclipse.example.calc/src/org/eclipse/example/calc/internal/ui/swt/CalculatorUI.java
@@ -89,13 +89,22 @@
 
 	private void setupNumberButtons() {
 		Composite numberButtonsPanel = new Composite(shell, SWT.NONE);
-		numberButtonsPanel.setLayout(new GridLayout(4, true));
+		numberButtonsPanel.setLayout(new GridLayout(3, true));
 		numberButtons = new Button[11];
 
-		for (int i = 0; i < numberButtons.length - 1; i++) {
+		for (int i = 7; i < numberButtons.length - 1; i++) {
 			addNumberButton(numberButtonsPanel, i, Integer.valueOf(i)
 					.toString());
 		}
+		for (int i = 4; i < 7; i++) {
+			addNumberButton(numberButtonsPanel, i, Integer.valueOf(i)
+					.toString());
+		}
+		for (int i = 1; i < 4; i++) {
+			addNumberButton(numberButtonsPanel, i, Integer.valueOf(i)
+					.toString());
+		}
+		addNumberButton(numberButtonsPanel, 0, "0");
 		addNumberButton(numberButtonsPanel, 10, ".");
 	}
 
