@Override
	public void actionPerformed(ActionEvent e) {
		//browse button
		if(e.getActionCommand().equals(Strings.MENU_DATA[4])){
			JFileChooser fc = new JFileChooser();
			fc.setPreferredSize(new Dimension(600,600));
			int returnVal = fc.showOpenDialog(Soartex_Patcher.frame);
			if (returnVal != JFileChooser.APPROVE_OPTION) return;
			File chosenFile = fc.getSelectedFile();

			if(chosenFile.getAbsolutePath().endsWith(Strings.ZIP_FILES_EXT.substring(1))){
				Strings.setModdedZipLocation(chosenFile.getAbsolutePath());
				//show old mods if possible
				Thread thread = new Thread(){
					public void run(){
						//info for user
						System.out.println("\nFinding Installed Mod Table");
						final JFrame frame = new JFrame("Loading");
						frame.setLocationRelativeTo(Soartex_Patcher.frame);
						frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
						GridLayout g1 = new GridLayout(3,1);
						frame.setLayout(g1);
						JLabel title = new JLabel("Please Wait We Are", JLabel.CENTER);
						title.setForeground(Color.white);
						JLabel title2 = new JLabel("Finding Your List", JLabel.CENTER);
						title2.setForeground(Color.white);

						final JProgressBar aJProgressBar = new JProgressBar(JProgressBar.HORIZONTAL);
						aJProgressBar.setStringPainted(false);
						aJProgressBar.setIndeterminate(true);

						frame.add(title, BorderLayout.NORTH);
						frame.add(title2);
						frame.add(aJProgressBar, BorderLayout.SOUTH);
						frame.setSize(200, 100);
						frame.setResizable(false);
						frame.setFocusableWindowState(true);
						frame.setVisible(true);

						Soartex_Patcher.frame.setEnabled(false);
						//get the old mods
						getOldMods();

						//disable frame
						Soartex_Patcher.frame.setEnabled(true);
						frame.setVisible(false);
					}
				};
				thread.start();
			}
			else{
				JOptionPane.showMessageDialog(Soartex_Patcher.frame,
						"Not a valid .zip",
						"Error",
						JOptionPane.ERROR_MESSAGE);
				System.err.println("Error: Not a valid .zip");
			}
		}
		//patch button
		else if(e.getActionCommand().equals(Strings.MENU_DATA[5])){
			Thread thread = new Thread(){
				public void run(){
					if(!Strings.MODDEDZIP_LOCATION.equals("")){
						Patch_Controller temp= new Patch_Controller(Strings.MODDEDZIP_LOCATION);
						temp.run();
					}
					else{
						JOptionPane.showMessageDialog(Soartex_Patcher.frame,
								"Your path has not been set to a valid .zip file.",
								"Error",
								JOptionPane.ERROR_MESSAGE);
						System.err.println("Error: Path not Set!");
					}
				}
			};
			thread.start();
		}
	}