anchor.diff:  init([]) ->
       lager:info("Advertisement counter client initialized."),
   
  +    %% Generate actor identifier.
  +    Actor = self(),
  +
  +    %% Delay initialization to ensure the application has been declared.
  +    %%
  +    %% @todo Main issue here is that the declare-if-not-found behaviour
  +    %% doesn't store anything in waiting-threads or store the pending
  +    %% threshold read, which causes this to halt forever.
  +    %%
  +    timer:sleep(5000),
  +
       %% Schedule initial state transfer for counters.
       refresh_advertisement_counters(undefined),
  +
  +    %% Schedule advertisement counter impression.
  +    schedule_impression(),
  +
  +    %% Schedule logging.
  +    schedule_logging(),
   
       %% Start local cache out at zero.
       Cache = dict:new(),
   
  -    {ok, #state{cache=Cache}}.
  +    {ok, #state{actor=Actor, impressions=0, cache=Cache}}.
   
   %% @private
   -spec handle_call(term(), {pid(), term()}, #state{}) ->
  
positive.code: 
  %% @private
  -spec handle_info(term(), #state{}) -> {noreply, #state{}}.
  handle_info({Id, _Type, _Metadata, _Value}=Result,
              #state{cache=Cache0}=State) ->
      lager:info("Received update: ~p", [Result]),
  
      %% Update cache.
      Cache = dict:store(Id, Result, Cache0),
  
      %% Schedule initial state transfer for counters.
      refresh_advertisement_counters(undefined),
  
      {noreply, State#state{cache=Cache}};
  handle_info(Msg, State) ->
  
negative.code: %%
  %% -------------------------------------------------------------------
  
  %% @todo I don't believe the cache is even necessary, but use it for
  %%       now.  At this point, it's superfluous, given that it
  %%       immediately updates the cache on update.
  
  -module(lasp_advertisement_counter_client).
  -author("Christopher Meiklejohn <christopher.meiklejohn@gmail.com>").
  
  