class Player {

	public boolean undo() {
		if (board.getTurn() == 0) {
			return false;
		}
		final boolean alreadyRunning = keepRunning;
		stopThreads();
		final ShortList movesList = new ShortList(board.getCoordinateSystem()
				.getMaxMovesPerGame());
		for (int i = 0; i < historyObserver.size() - 1; i++) {
			movesList.add(historyObserver.get(i));
		}
		// Now replay the moves
		board.clearPreservingInitialStones();
		updater.clear();
		for (int i = 0; i < movesList.size(); i++) {
			board.play(movesList.get(i));
		}
		if (alreadyRunning) {
			startThreads();
		}
		return true;
	}

	public  Player(int threads, CopiableStructure stuff);

}