public void switchTo(String newFolder) {
	try {
	    long start = System.currentTimeMillis();
	    if (songFolderLoc != null && songFolderLoc.equals(newFolder)) {
		Util.errorMessage(
			"Please don't try to load your entire osu! Songs Folder here.\n"
				+ "It'll probably take forever and lag your computer.",
			this);
		return;
	    }
	    File f = new File(newFolder);
	    // TODO thread properly, have loading screen
	    if (f.exists() && f.isDirectory()) {
		directory = newFolder;
		c = new Consolidator(f);
		panel.remove(tabs);
		tabs = new AIBatTabbedPane(c);
		panel.add(tabs, BorderLayout.CENTER);
		this.invalidate();
		this.validate();
		fileOpened = true;
		if (tabs.getTabCount() <= AIBatTabbedPane.NUM_OVERALL)
		    Util.errorMessage("No .osu files found.", this);
		this.setTitle(VERSION + " - " + Util.cutPath(newFolder));
		tabs.requestFocusInWindow();

		if (!menu.skipModTrace()) {
		    modTraceThread.interrupt();
		    modTraceThread = new Thread(new ModTrace(c.getOsuFiles(),
			    tabs, menu));
		    modTraceThread.start();
		}

	    }
	    else
		Util.errorMessage("Folder not found.", this);
	    Util.logTime(start);
	}
	catch (Exception e) {
	    Util.errorException(e, newFolder);
	}
    }