   end
 
   def handle_call(:next, _from, {_, state}) do
-    state = next_turn(state)
+    state = apply_reducer(state)
     {:reply, :ok, {:suspend, state}}
   end
 


  #
  def handle_info(:tick, {:cont, state}) do
    state = next_turn(state)
    if done?(state) do
      {:noreply, {:halted, state}}
    else

    Process.send_after(self(), :tick, delay(state))
  end

  defp apply_reducer(state) do
    %{state| world: state.reducer.(state.world)}
  end

  # check if the game is over
