public JPanel getCodeView(PippinMachine machine) {
		this.machine = machine;
		machine.addObserver(this);

		for(int i = 0; i < rows.length; i++) {
			rows[i] = new CodeRow(i, machine);
		}
		
		JPanel retVal = new JPanel();
		
		retVal.setLayout(new BorderLayout());
		retVal.setBackground(Color.ORANGE);
		retVal.add(tableHeader(), BorderLayout.PAGE_START);
		
		JPanel codeArea = new JPanel();
		codeArea.setLayout(new BorderLayout());
		codeArea.setBackground(Color.CYAN);
		retVal.add(new JScrollPane(codeArea), BorderLayout.CENTER);

		JPanel numbers = new JPanel();
		numbers.setLayout(new GridLayout(0, 1));
		numbers.setBackground(Color.MAGENTA);
		
		for (CodeRow r : rows) {
			numbers.add(r.getLabel());
		}

		codeArea.add(numbers, BorderLayout.LINE_START);

		centerPanel.setBackground(Color.GREEN);
		buildMainComponent(centerPanel);
		codeArea.add(centerPanel);
		return retVal;
	}