public OsuFilesCopier(List<File> osuFiles) {
	this.osuFiles = osuFiles;
	for (File srcFile : this.osuFiles) {

	    File destFile = new File(ORIG_SUBDIR + srcFile.getName() + ".orig");

	    if (!destFile.exists()) {
		writeOrigFile(srcFile, destFile);
	    }
	    else {
		overwritePreference: switch (overwritePreference) {
		case NONE:
		    break overwritePreference;
		case NO_PREFERENCE:
		    // // If All or Yes, continue. If No, None or closed,
		    // finish.
		    // // Also, save All/None preference for the rest.
		    // Object[] options = { "All", "Yes", "No", "None" };
		    // switch (JOptionPane.showOptionDialog(null, OVERWRITE_MSG,
		    // "File already exists: \"" + destFile + "\"",
		    // JOptionPane.PLAIN_MESSAGE,
		    // JOptionPane.QUESTION_MESSAGE, null, options,
		    // options[2])) {
		    // case 0:
		    // overwritePreference = OP.ALL;
		    // case 1:
		    // break;
		    // case 3:
		    // overwritePreference = OP.NONE;
		    // case 2:
		    // default: // if window closed
		    // break overwritePreference;
		    // }
		    // case ALL:
		    // writeOrigFile(srcFile, destFile);
		    // break;
		    // }

		    Object[] options = { "Start Over", "Continue From Previous" };
		    switch (JOptionPane.showOptionDialog(null, OVERWRITE_MSG,
			    "ModTrace Previously Ran",
			    JOptionPane.PLAIN_MESSAGE,
			    JOptionPane.QUESTION_MESSAGE, null, options,
			    options[1])) {
		    case 0:
			overwritePreference = OP.ALL;
			break;
		    case 1:
		    default: // if window closed
			overwritePreference = OP.NONE;
			break overwritePreference;
		    }
		case ALL:
		    writeOrigFile(srcFile, destFile);
		    break;
		}
	    }
	    parsedOrigFiles.put(new OsuFileParser(destFile), srcFile);
	}
    }