public void actionPerformed(ActionEvent e) {
		if ("newmaps".equals(e.getActionCommand())) {
			if (game != null)
				closeGame();
			newMapSamples();
		} else if ("newgens".equals(e.getActionCommand())) {
			List<GeneratorIndividual<T>> individuals = gaPop.getIndividuals();
			for (int index = 0; index < individuals.size(); index++) {
				if (!generators.get(index).isSelected()) {
					Generator<T> replacementGen = loadGenerator(allGens
							.get((int) (allGens.size() * Math.random())));
					gaPop.replaceIndividual(index, new GeneratorIndividual<T>(
							replacementGen));
					mapAdders[index].stopAdding();
					generators.get(index).clear();
					generators.get(index)
							.setGenerator((individuals
									.get(index)).getGenerator());
					mapAdders[index] = new CloudMapThread(generators.get(index));
					mapAdders[index].setPriority(Thread.MIN_PRIORITY);
					mapAdders[index].start();
				}
			}
		} else if ("nextgen".equals(e.getActionCommand())) {
			nextGeneration();
		} else if ("goback".equals(e.getActionCommand())) {
			gaPop = oldPops.pop();
			for (int i = 0; i < generators.size(); i++)
				gaPop.setIndividualFitness(i, 0);
			setGeneratorsToPopulation();
			/** disable button when no populations are available anymore */
			if (oldPops.isEmpty()) {
				goBackButton.setEnabled(false);
			}
		}
	}