 
 
   # Remove the given player from the current list.
-  defp _remove_player(player, state) do
+  defp internal_remove_player(player, state) do
     :ok = state.arena_objects |> Tanx.Core.ArenaObjects.kill_player_objects(player)
     state = %State{state | players: state.players |> Dict.delete(player)}
     _broadcast_change(state)

  # Remove the calling player. Returns :ok (regardless of whether the caller was a player
  # that was removed or not).
  def handle_call(:player_left, {from, _}, state) do
    state = _remove_player(from, state)
    {:reply, :ok, state}
  end


  # Trap EXIT to handle the death of Player processes. If a Player dies, remove it.
  def handle_info({:EXIT, pid, _}, state) do
    {:noreply, _remove_player(pid, state)}
  end
  def handle_info(request, state), do: super(request, state)


        {player, player_info} ->
          build_player_view(player_info, from == player)
        end)
      |> sort_views()
    {:reply, player_views, state}
  end

