public MicromouseFrameworkGUI() {
        super("Micromouse Framework GUI");

        JPanel panel = new JPanel(true);
        panel.setLayout(new BorderLayout());

		/*
		 * GRID: NORTH
		 */
        JPanel p1 = new JPanel(new GridLayout(1, 6, 2, 2));
        // make combo box
        // - label
        JTextField titleText = new JTextField("Micromouse Framework GUI");
        titleText.setFont(new Font("SansSerif", Font.BOLD, 15));
        titleText.setEditable(false);
        p1.add(titleText);
        fileName = new JTextField("Please load file");
        fileName.setEditable(false);
        p1.add(fileName);
        bFile = new JButton("Browse");
        bFile.addActionListener(this);
        p1.add(bFile);
		
		/*
		 * GRID: WEST
		 */
        JPanel p2 = new JPanel(new GridLayout(3, 2, 2, 2));
        // make bot info screen
        // Print current direction of the bot
        JTextField curDirecLable = new JTextField("Current Direction: ");
        curDirecLable.setEditable(false);
        p2.add(curDirecLable);
        curDirecVal = new JTextField(newRun.getCurrentDirec());
        curDirecVal.setEditable(false);
        p2.add(curDirecVal);
        // Print current location
        JTextField curLocLable = new JTextField("Current Location: ");
        curLocLable.setEditable(false);
        p2.add(curLocLable);
        curLocVal = new JTextField("( " + newRun.getCurLocX() + ", " + newRun.getCurLocY() + " )");
        curLocVal.setEditable(false);
        p2.add(curLocVal);
        bStart = new JButton("Start");
        bStart.addActionListener(this);
        bStart.setEnabled(false);
        p2.add(bStart);
        // add next button
        bNext = new JButton("Next");
        bNext.addActionListener(this);
        bNext.setEnabled(false);
        p2.add(bNext);
		
		/*
		 * GRID: CENTER
		 */
        JPanel p3 = new JPanel(new GridLayout(16, 16), true);
        // make board GUI
        board = new JButton[newRun.BOARD_MAX][newRun.BOARD_MAX];
        for (int i = 0; i < newRun.BOARD_MAX; i++) {
            for (int j = 0; j < newRun.BOARD_MAX; j++) {
                board[i][j] = new JButton("" + newRun.getPotential(j, i));
                board[i][j].setBackground(Color.green);
                board[i][j].setOpaque(true);
                p3.add(board[i][j]);
            }
        }
		
		/*
		 * GRID: SOUTH
		 */
        // add dialogue
        JPanel p5 = new JPanel(new GridLayout(1, 3, 5, 5));
        dialogue = new JTextField();
        dialogue.setEditable(false);
        p5.add(dialogue);
        // add reset droid button
        bReset = new JButton("Reset Droid");
        bReset.addActionListener(this);
        p5.add(bReset);
        // add clear all button
        bClear = new JButton("Clear All");
        bClear.addActionListener(this);
        p5.add(bClear);

        panel.add(p1, BorderLayout.NORTH);
        panel.add(p2, BorderLayout.WEST);
        panel.add(p3, BorderLayout.CENTER);
        panel.add(p5, BorderLayout.SOUTH);
        getContentPane().add(panel);
    }