anchor.diff:  					   players = Players}) ->
   	case update_out_player(OutPlayerId) of
   		ok ->
  -			%% TODO dispatch player out event
  +			OutPlayer = find_player(OutPlayerId),
  +			gen_event:notify(GameEventPid, 
  +							 {player_out, OutPlayerId, OutPlayer#player.handle}),
   			InPlayers = in_players(GameId),
   			case length(InPlayers) of
   				Length when Length =:= 1 ->
  -					[InPlayer] = in_players(GameId),
  +					[InPlayer] = InPlayers,
   					case win_game(GameId, InPlayer#player.id) of
   						{ok, won} ->
  -							%% TODO dispatch game won event
  +							gen_event:notify(GameEventPid, 
  +												  {game_won, InPlayer#player.id, InPlayer#player.handle}),
  +							gen_event:stop(GameEventPid),
   							{stop, won, State};
   						{error, Reason} = Error ->
  -							%% TODO dispatch game error event
  +							gen_event:notify(GameEventPid, {game_error, Reason}),
  +							gen_event:stop(GameEventPid),
   							{stop, Error, State}
   					end;
   				_ ->
  
positive.code: 			{error, Reason}
  	end.
  
  player_ids(GameId) ->
  	MatchSpec = ets:fun2ms(fun({_, _, GmId, _} = GpAssoc) 
  								when GmId =:= GameId -> GpAssoc end),
  
negative.code: 		State = #state{game_event_pid = GameEventPid,
  					   game_id = GameId,
  					   players = Players}) ->
  	Player = find_player(PlayerId),
  	case remove_player(GameId, PlayerId) of
  		ok ->
  			gen_event:delete_handler(GameEventPid, {bc_game_event, PlayerId}, []),
  			UpdatedPlayers = dict:erase(PlayerId, Players),
  			gen_event:notify(GameEventPid, {player_quit, PlayerId, Player#player.handle}),
  			UpdatedState = State#state{players = UpdatedPlayers},
  			case pending_players_changed(GameId, UpdatedPlayers) of
  				{ok, quit} ->
  					gen_event:stop(GameEventPid),
  					{stop, quit, UpdatedState};
  				{ok, pending} ->
  					{next_state, pending, UpdatedState};
  				{error, Reason} = Error ->
  					gen_event:notify(GameEventPid, {game_error, Reason}),
  					gen_event:stop(GameEventPid),
  					{stop, Error, UpdatedState};
  				_ ->
  					{stop, illegal_state, UpdatedState}
  