@Override
	public void actionPerformed(ActionEvent e) {
		// causes the screen to be redrawn
		this.repaint();
		if (e.getSource() == meteorTimer) {
			spawnMeteor();
			spawnDestroyer();
			meteorTimer.restart();
		}
		if (e.getSource() == spaceMoveTimer) {

			Iterator<Enemy> iterator = enemyList.iterator();
			while (iterator.hasNext()) {
				Enemy b = iterator.next();

				if (b != null && b.isActive()) {
					b.move();
				} else {
					iterator.remove();
				}
			}
		}
		if (e.getSource() == shootBackTimer) {

			shootBackTimer.restart();

			Iterator<Enemy> iterator = enemyList.iterator();
			while (iterator.hasNext()) {
				Enemy p = iterator.next();

				if (p instanceof shootBack && p.isActive() == true) {
					p.shoot();
				}

			}
		}
	}