private void buildGUI() {
		frame = new JFrame("Preferences");
		JPanel mainPanel = new JPanel();
		mainPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
		mainPanel.setLayout(new BorderLayout());
		JPanel center = new JPanel(new GridLayout(1, 2));
		JPanel generalOptions = new JPanel();
			generalOptions.setBorder(BorderFactory.createTitledBorder("General"));
			generalOptions.setLayout(new BoxLayout(generalOptions, BoxLayout.Y_AXIS));
			fpsStatus = new JCheckBox("Show FPS on status bar");
			fpsStatus.setSelected(true);
			generalOptions.add(fpsStatus);
			autoScroll = new JCheckBox("Enable Autoscroll");
			autoScroll.addActionListener(new ButtonListener());
			autoScroll.setSelected(true);
			generalOptions.add(autoScroll);
			refresh = new JCheckBox("Refresh Screen");
			refresh.addActionListener(new ButtonListener());
			refresh.setSelected(true);
			generalOptions.add(refresh);
			refreshLabel = new JLabel("?");
			generalOptions.add(refreshLabel);
			refreshSlider = new JSlider();
				refreshSlider.addChangeListener(new RefreshListener());
				refreshSlider.setMinimum(250);
				refreshSlider.setMaximum(1000);
				refreshSlider.setMajorTickSpacing(100);
				refreshSlider.setMinorTickSpacing(25);
				refreshSlider.setValue(1000);
				refreshSlider.setSnapToTicks(true);
				refreshSlider.setPaintTicks(true);
			generalOptions.add(refreshSlider);
		center.add(generalOptions);
		JPanel debugOptions = new JPanel();
			debugOptions.setBorder(BorderFactory.createTitledBorder("Debugging"));
			debugOptions.setLayout(new BoxLayout(debugOptions, BoxLayout.Y_AXIS));
			gravityDebugStatus = new JCheckBox("Gravity debug info on status bar");
			gravityDebugStatus.addActionListener(new ButtonListener());
			debugOptions.add(gravityDebugStatus);
			autoscrollStatus = new JCheckBox("Autoscroll on/off on status bar");
			autoscrollStatus.addActionListener(new ButtonListener());
			debugOptions.add(autoscrollStatus);
			gravityOnStatus = new JCheckBox("Gravity on/off on status bar");
			gravityOnStatus.addActionListener(new ButtonListener());
			debugOptions.add(gravityOnStatus);
			scrollStatus = new JCheckBox("Scroll position on/off on status bar");
			scrollStatus.addActionListener(new ButtonListener());
			debugOptions.add(scrollStatus);
			notifyViewRefresh = new JCheckBox("View refresh notifications on/off");
			notifyViewRefresh.addActionListener(new ButtonListener());
			debugOptions.add(notifyViewRefresh);
		center.add(debugOptions);
		mainPanel.add(buildTopPanel(), BorderLayout.NORTH);
		mainPanel.add(center, BorderLayout.CENTER);
		frame.getContentPane().add(mainPanel, BorderLayout.CENTER);
		frame.setBounds(Helper.getCenteredBounds(550, 350));
	}