public boolean put(int column) {
		if (p) System.out.println("put " + column + "(num listeners = " + listeners.size() + ")");
		
		if (getRules().getGameVariant() != 3) {
			System.out.println("Column " + (column+1) + " played.");
		} else {
			System.out.println("Column " + ((column&3)+1) + "-" + (char)('A' + (column>>2)) + " played.");
		}
		
		switch (column) {
		case -3:
			quit();
			break;
		case -2:
			newGame();
			break;
		case -1:
			undo();
			break;
		default:
		{
			if (!cfr.canPut(column)) 
				return false;
			for (int i=0; i<listeners.size(); i++)
				listeners.get(i).put(column);
			return true;
		}
		}
		return true;
	}