@Override
		protected void initiate()
			{
				simulationScroller.setY(Hub.canvasHeight - 20);
				simulationScroller.setMaxScrollDistance(sim.simWidth);

				if (sim.simWidth > 800)
					add(simulationScroller);
				else
					remove(simulationScroller);

				simOptionsMenu = new TMenu(1000, 0, 200, Hub.canvasHeight, TMenu.VERTICAL);
				interactionsMenu = new TMenu(0, 0, 200, Hub.canvasHeight, TMenu.VERTICAL);
				plantOptionsMenu = new TMenu(0, 0, 200, Hub.canvasHeight, TMenu.VERTICAL);
				lightOptionsMenu = new TMenu(0, 0, 200, Hub.canvasHeight, TMenu.VERTICAL);
				filterOptionsMenu = new TMenu(0, 0, 200, Hub.canvasHeight, TMenu.VERTICAL);
				geneOptionsMenu = new TMenu(0, 0, 200, Hub.canvasHeight, TMenu.VERTICAL);
				presetOptionsMenu = new TMenu(0, 0, 200, Hub.canvasHeight, TMenu.VERTICAL);
				topMenu.setBorderSize(5);

				Toolkit k = Toolkit.getDefaultToolkit();
				plantSeedCursor = k.createCustomCursor(Hub.loadImage("seedPointer.png"), new Point(0, 0), "seed");
				getGenesCursor = k.createCustomCursor(Hub.loadImage("dna.png"), new Point(0, 0), "genes");
				killPlantCursor = k.createCustomCursor(Hub.loadImage("skull.png"), new Point(0, 0), "kill");
				deleteFilterCursor = k.createCustomCursor(Hub.loadImage("bin.png"), new Point(0, 0), "move");
				moveFilterCursor = k.createCustomCursor(Hub.loadImage("fourWayArrow.png"), new Point(0, 0), "delete");

				// Top menu set-up.
				add(topMenu);
				topMenu.add(plantInteractionsButton);
				topMenu.add(plantOptionsButton);
				topMenu.add(lightOptionsButton);
				topMenu.add(filterOptionsButton);
				topMenu.add(geneOptionsButton);
				topMenu.add(presetOptionsButton);

				// PlantInteractions menu set-up. This menu is located on the
				// left
				interactionButtons.add(selectPlantButton);
				interactionButtons.add(plantSeedButton);
				interactionButtons.add(getGenesButton);
				interactionButtons.add(killPlantsButton);
				interactionButtons.add(moveFilterButton);
				interactionButtons.add(deleteFilterButton);
				interactionsMenu.add(selectPlantButton);
				interactionsMenu.add(plantSeedButton);
				interactionsMenu.add(getGenesButton);
				interactionsMenu.add(killPlantsButton);
				interactionsMenu.add(moveFilterButton);
				interactionsMenu.add(deleteFilterButton);

				// SimOptions menu set-up. This menu is located on the right
				warpSpeedSlider.setRange(0, 50);
				simOptionsMenu.add(new TLabel("Warp Speed"), false);
				warpSpeedSlider.setValue(10.0);
				simOptionsMenu.add(warpSpeedSlider);
				playbackSpeed.setRange(0, 12);
				simOptionsMenu.add(new TLabel("Playback Speed"), false);
				playbackSpeed.setValue(5.0);
				simOptionsMenu.add(playbackSpeed);
				simOptionsMenu.add(resetSimButton);
				simOptionsMenu.add(mainMenuButton);

				// PlantOptions menu set-up. This menu is located on the left
				TLabel allPlantsLabel = new TLabel("All Plants");
				allPlantsLabel.setFontSize(15);
				allPlantsLabel.setBackgroundColour(new Color(0, 200, 200));
				plantOptionsMenu.add(allPlantsLabel, false);
				plantOptionsMenu.add(new TLabel("Leaf Size"), false);
				leafSizeSlider.setRange(2, 25);
				plantOptionsMenu.add(leafSizeSlider);
				plantOptionsMenu.add(new TLabel("Stalk Length"), false);
				stalkLengthSlider.setRange(15, 100);
				plantOptionsMenu.add(stalkLengthSlider);
				plantOptionsMenu.add(new TLabel("Chance of mutant offspring (%)"), false);
				plantOptionsMenu.add(mutantOffspringSlider);
				plantOptionsMenu.add(new TLabel("Damage to mutant DNA (%)"), false);
				dnaDamageSlider.setRange(0, 15);
				plantOptionsMenu.add(dnaDamageSlider);

				// GeneOptionsMenu set-up. This menu is located on the left
				geneOptionsMenu.add(geneSaveNameField, false);
				geneOptionsMenu.add(saveGenesButton);
				geneOptionsMenu.add(savedGenesMenu, false);
				geneOptionsMenu.add(loadGenesButton);
				geneOptionsMenu.add(deleteGenesButton);
				loadDeleteGenesButtons.add(loadGenesButton);
				loadDeleteGenesButtons.add(deleteGenesButton);
				geneOptionsMenu.add(openGenesFolderButton);

				// PresetOptionsMenu set-up. This menu is located on the left
				presetOptionsMenu.add(presetSaveNameField, false);
				presetOptionsMenu.add(savePresetButton);
				presetOptionsMenu.add(savedPresetsMenu, false);
				presetOptionsMenu.add(loadPresetButton);
				presetOptionsMenu.add(deletePresetButton);
				loadDeletePresetButtons.add(loadPresetButton);
				loadDeletePresetButtons.add(deletePresetButton);
				presetOptionsMenu.add(openPresetsFolderButton);

				// LightOptions menu set-up. This menu is located on the left
				TLabel lightOptionsLabel = new TLabel("Sunlight Options");
				lightOptionsLabel.setFontSize(15);
				lightOptionsLabel.setBackgroundColour(new Color(0, 200, 200));
				lightOptionsMenu.add(lightOptionsLabel, false);
				lightOptionsMenu.add(showLightButton);
				lightOptionsMenu.add(new TLabel("Light Intensity"), false);
				redLightSlider.setRange(0, 255);
				greenLightSlider.setRange(0, 255);
				blueLightSlider.setRange(0, 255);
				redLightSlider.setSliderImage(0, Hub.loadImage("redSun.png"));
				greenLightSlider.setSliderImage(0, Hub.loadImage("greenSun.png"));
				blueLightSlider.setSliderImage(0, Hub.loadImage("blueSun.png"));
				lightOptionsMenu.add(redLightSlider);
				lightOptionsMenu.add(greenLightSlider);
				lightOptionsMenu.add(blueLightSlider);
				lightOptionsMenu.add(new TLabel("Leaf Transparency"), false);
				lightOptionsMenu.add(leafOpacitySlider);

				// FilterOptions menu set-up. This menu is located on the left
				TLabel filterOptionsLabel = new TLabel("Light Filter Options");
				filterOptionsLabel.setFontSize(15);
				filterOptionsLabel.setBackgroundColour(new Color(0, 200, 200));
				filterOptionsMenu.add(filterOptionsLabel, false);
				filterOptionsMenu.add(new TLabel("Filter Width"), false);
				filterWidthSlider.setRange(0, sim.simWidth);
				filterOptionsMenu.add(filterWidthSlider);
				filterRedLightSlider.setSliderImage(0, Hub.loadImage("redFilter.png"));
				filterGreenLightSlider.setSliderImage(0, Hub.loadImage("greenFilter.png"));
				filterBlueLightSlider.setSliderImage(0, Hub.loadImage("blueFilter.png"));
				filterRedLightSlider.setRange(0, 255);
				filterGreenLightSlider.setRange(0, 255);
				filterBlueLightSlider.setRange(0, 255);
				filterOptionsMenu.add(filterRedLightSlider);
				filterOptionsMenu.add(filterGreenLightSlider);
				filterOptionsMenu.add(filterBlueLightSlider);
				filterOptionsMenu.add(createFilterButton);

				Hub.geneIO.addGenesToMenu();
				Hub.geneIO.loadGenes("default.txt");

				Hub.presetIO.addPresetsToMenu();

				setLeftMenu(interactionsMenu);
				setRightMenu(simOptionsMenu);

				Hub.presetIO.loadPreset("default.txt");
			}