   end
 
   def add_message(history = %History{}, room, message) do
-    history =
+    {is_fomo_event, history} =
       history
       |> trim_size(room)
       |> enqueue(room, message)
-
-    {{history |> fomo_event?(room), history |> entries(room)}, history}
+      |> handle_fomo_event(room)
+
+    {
+      {
+        is_fomo_event,
+        history |> entries(room)
+      },
+      history
+    }
   end
 
   def entries(history, room) do

  def enqueue(history, room, message) do
    history
    |> push_entry(room, message)
    |> handle_fomo_event(room)
  end

  defp push_entry(history, room, message) do


  defp handle_fomo_event(history, room) do
    if history |> fomo_event?(room) do
      history = put_in history.last_notified[room],
                :erlang.monotonic_time
      {true, history}
    else
      {false, history}
    end
  end

