public void actionPerformed(ActionEvent e) {

		//** START **//
		if (e.getActionCommand().equals(START) || e.getActionCommand().equals(RESUME) ){
			game.start();

			// this button is PAUSE now
			buttons.get(START_ID).setText(PAUSE);
			buttons.get(START_ID).setMnemonic('P');
		}

		//** PAUSE **//
		if (e.getActionCommand().equals(PAUSE)){
			game.pause();

			// can resume
			buttons.get(START_ID).setText(RESUME);
			buttons.get(START_ID).setMnemonic('u');
		}

		//** RANDOM **//
		if (e.getActionCommand().equals(RANDOM)){
			game.random();

			// game is set to pause
			if (buttons.get(START_ID).getText().equals(PAUSE)){
				buttons.get(START_ID).setText(RESUME);
				buttons.get(START_ID).setMnemonic('u');
			}
		}

		//** RESET **//
		if (e.getActionCommand().equals(RESET)){
			game.reset();
			slider.reset();

			// reset buttons at initial state
			buttons.get(START_ID).setText(START);
			buttons.get(START_ID).setMnemonic('S');
		}

		//** STEP **//
		if (e.getActionCommand().equals(STEP)){
			game.step();

			// pause the main infinity loop
			if (buttons.get(START_ID).getText().equals(PAUSE)){
				buttons.get(START_ID).setText(RESUME);
				buttons.get(START_ID).setMnemonic('u');
			}
		}
	}