 
   def handle_received(data, %{"action" => "start"}) do
     participants = Enum.map(data.participants, fn {id, _} -> {id, nil} end) |> Enum.into(%{})
-    data = %{data | started: true, exited_users: 0, participants: participants}
+    data = %{data |
+     started: true,
+     exited_users: 0,
+     participants: participants,
+     punished: false
+   }
     action = %{
       type: "START",
       users: data.participants

       exited_users: 0,
       prize: 0,
       host_log: [],
       participant_log: []
     }}}
  end

  def join(%{participants: participants} = data, id) do
    if not Map.has_key?(participants, id) do
      participants = Map.put(participants, id, nil)
      data = %{data | participants: participants}
      action = %{

      })
      if Map.size(data.participants) == data.exited_users + 1 do
        {id, nil} = Enum.find(data.participants, fn {id, value} -> value == nil end)
        data = data
                |> put_in([:participants, id], :punished)
                |> Map.put(:punished, true)
        host_action = Map.put(host_action, :users, data.participants)
        participant = %{participant | id => %{
          action: %{
