static String getBase() throws IOException {
		if (propRoot.containsKey("BASE") && (new File(propRoot.get("BASE") + "\\apps\\pro")).isDirectory())
			return propRoot.get("BASE").toString();
		if (new File("C:\\metasploit\\apps\\pro\\").isDirectory()){
			propRoot.put("BASE", "C:\\metasploit\\");
		}else if (new File("/opt/metasploit/apps/pro/").isDirectory()){
			propRoot.put("BASE", "/opt/metasploit/");
		}else if(new File("C:\\metasploit-framework").isDirectory()){
			propRoot.put("BASE", "C:\\metasploit-framework\\");
		}else{
			if(JOptionPane.showConfirmDialog(null,
					  "Cannot find metasploit install directory (usually C:\\metasploit \n"
					+ "on Windows or /opt/metasploit on Linux). If you have not installed \n"
					+ "an updated version of metasploit, go to http://metasploit.com/download\n"
					+ " to get an updated copy. Otherwise, click yes to choose a different \n"
					+ "install directory.") == JOptionPane.YES_OPTION){
				fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
				fileChooser.showOpenDialog(null);
				fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
				//Now verify
				if((new File(fileChooser.getSelectedFile().getCanonicalPath()+"/apps/pro")).isDirectory()
						|| (new File(fileChooser.getSelectedFile().getCanonicalPath()+"/bin/msfrpcd.bat")).isDirectory()){
					MsfguiApp.getPropertiesNode().put("BASE", fileChooser.getSelectedFile().getCanonicalPath());
				} else {
					if(JOptionPane.showConfirmDialog(null, "Folder might not be valid. Use anyway?") == JOptionPane.YES_OPTION){
						MsfguiApp.getPropertiesNode().put("BASE", fileChooser.getSelectedFile().getCanonicalPath());
					}
				}
			}else{
				return "";
			}
		}
		return propRoot.get("BASE").toString();
	}