public void updatePerson(P p) throws InvalidFieldException {
		// is the ID in use in the game data?
		GameData g = GameData.getCurrentGame();

		
		boolean valid;
		InvalidFieldException ie;
		if (p instanceof Contestant) {
			valid = g.checkID((Contestant)p, Contestant.class);
			ie = new InvalidFieldException(Field.CONT_ID_DUP,
					"Invalid ID (in use)");
		} else {
			valid = g.checkID((User)p, User.class);
			ie = new InvalidFieldException(Field.USER_ID_DUP,
					"Invalid ID (in use)");
		}
		
		if (!valid)
			throw ie;

		addPerson(p);
		
		//sortTable();
		fireTableDataChanged();
	}