public void keyReleased(KeyEvent e) {
		  // movement is disallowed when the level is over
		  if (transition)
				return;

		  if (!level.isSolved()) {
				switch (e.getKeyCode()) {
				case KeyEvent.VK_DOWN:
					 level.getPusher().move(0,1);
					 break;
				case KeyEvent.VK_UP:
					 level.getPusher().move(0,-1);
					 break;
				case KeyEvent.VK_LEFT:
					 level.getPusher().move(-1,0);
					 break;
				case KeyEvent.VK_RIGHT:
					 level.getPusher().move(1,0);
					 break;
				}
				
				// if this was a winning move
				if (level.isSolved()) {
					 recordHighscore();
					 transition = true;
				}
		  }
		  switch (e.getKeyCode()) {
		  case KeyEvent.VK_ENTER:
				level.reset();
				break;
		  case KeyEvent.VK_SPACE:
				transition = true;
				break;
		  }
		  requestFocus();
	 }