anchor.diff:  %%====================================================================
   %% support functions
   %%====================================================================
  +
  +%% @doc Flush all incoming messages, used when receiving timer ticks to prevent multiple ticks.
  +flush_info_message(Msg) ->
  +    receive
  +        Msg -> flush_info_message(Msg)
  +    after 0 ->
  +        ok
  +    end.
   
   %% @doc Notify an observer of an event
   notify_observer(Msg, {_Prio, Fun}, _IsCall, Context) when is_function(Fun) ->
  
positive.code: %% @spec handle_info(Info, State) -> {noreply, State} |
  %%                                       {noreply, State, Timeout} |
  %%                                       {stop, Reason, State}
  %% @doc Handling all non call/cast messages
  handle_info(_Info, State) ->
      {noreply, State}.
  
negative.code: %% terminate. It should be the opposite of Module:init/1 and do any necessary
  %% cleaning up. When it returns, the gen_server terminates with Reason.
  %% The return value is ignored.
  terminate(_Reason, State) ->
      [ timer:cancel(TRef)  || {ok, TRef} <- State#state.timers ],
      ok.
  
  %% @spec code_change(OldVsn, State, Extra) -> {ok, NewState}
  