anchor.diff:              %% Spawn a process to disable the advertisement if it goes
               %% above the maximum number of impressions.
               %%
  -            %% @todo Not optimal at all because it spawns a ton of
  -            %% processes, but good enough for now.  Fix me before merge.
  -            %%
  -            case lasp_config:get(heavy_client, false) of
  +            Triggers = case lasp_config:get(heavy_client, false) of
                   true ->
  -                    spawn_link(fun() -> trigger(Ad, Actor) end);
  +                    case dict:find(Ad, Triggers0) of
  +                        {ok, _Pid} ->
  +                            Triggers0;
  +                        error ->
  +                            Pid = spawn_link(fun() -> trigger(Ad, Actor) end),
  +                            dict:store(Ad, Pid, Triggers0)
  +                    end;
                   false ->
  -                    ok
  +                    Triggers0
               end,
   
               %% Increment counter.
               {ok, _} = lasp:update(Counter, increment, Actor),
   
               %% Increment impressions.
  -            Impressions0 + 1
  +            {Impressions0 + 1, Triggers}
       end,
   
       %% - If I did nothing (`Impressions0 == Impressions1`),
  
positive.code: -include("lasp.hrl").
  
  %% State record.
  -record(state, {actor, impressions}).
  
  %%%===================================================================
  %%% API
  
negative.code:             schedule_impression()
      end,
  
      {noreply, State#state{impressions=Impressions1, triggers=Triggers1}};
  
  handle_info(check_simulation_end, #state{actor=Actor}=State) ->
      %% A simulation ends for clients when all clients have
  