public GameState play(UserInput input) {
		switch (input.getType()) {
		case NORMAL:
			return doPlay(input);
		case UNDO:
			return undo(input);
		case REDO:
			return redo(input);
		default:
			return GameState.PLAYING;
		}
	}