public void actionPerformed(ActionEvent arg0) {
		//find our super parent frame -- needed for dialogs
		Component c = this;
		while (null != c.getParent())
			c = c.getParent();
				
		if(arg0.getActionCommand().equalsIgnoreCase("SAVE")){
			chooser.setCurrentDirectory(new File("boards"));
			int returnVal = chooser.showSaveDialog(this);
			if(returnVal == JFileChooser.APPROVE_OPTION){
				File file = chooser.getSelectedFile();
				try{
					board.save(file);
					JOptionPane.showMessageDialog((Frame)c, "File saved successfully.", "Success", JOptionPane.INFORMATION_MESSAGE);
				}catch(Exception e){
					JOptionPane.showMessageDialog( (Frame)c, e, "Save Error", JOptionPane.ERROR_MESSAGE);
				}
			}
		}else if(arg0.getActionCommand().equalsIgnoreCase("LOAD")){
			chooser.setCurrentDirectory(new File("boards"));
			int returnVal = chooser.showOpenDialog(this);
			
			if(returnVal == JFileChooser.APPROVE_OPTION){
				File file = chooser.getSelectedFile();
				try{
					loading = true;
					board.load(file);
					boardPanel.setBoard(board, true);
					JOptionPane.showMessageDialog((Frame)c, "File loaded successfully.", "Success", JOptionPane.INFORMATION_MESSAGE);
					loading = false;
				}catch(IOException e){
//					e.printStackTrace();
					JOptionPane.showMessageDialog( (Frame)c, e, "Load Error", JOptionPane.ERROR_MESSAGE);
					loading = false;
				}
			}
		}else if(arg0.getActionCommand().equalsIgnoreCase("RESET")){
			board = new Board(20, 20);
			boardPanel.setBoard(board, true);
			this.repaint();
			boardPanel.repaint();
		}else if(arg0.getActionCommand().equalsIgnoreCase("REMOVE")){
			boardPanel.removeSelectedLine();
		}
	}