anchor.diff:      lager:debug(Format, Args);
   nlog(verbose, Format, Args) ->
       lager:info(Format, Args).
  +
  +
  
positive.code: 
  
  init([Name, HeartbeatInterval, DeadIntervalCount]) ->
      {ok, initializing, #state{dead_interval=HeartbeatInterval * DeadIntervalCount,
                                name=Name}, 0}.
  
  initializing(timeout, #state{name=Name}=State) ->
      case gproc:reg({n, l, Name}) of
  
negative.code:     State1 = State#state{observers=lists:delete(Object,Observers)},
      {next_state, StateName, State1};
  handle_info({heartbeat, NodeName, NodeState},
              StateName, #state{logging=Level, heartbeats=HeartBeats, heartbeat_rate=HRate}=State) ->
      nlog(Level, "Heartbeat recieved from ~p Currently ~p ~p", [NodeName, NodeState, HRate]),
      eavg_value(HRate),
      %% Note that we got a heartbeat
      State1 = State#state{heartbeat_rate=eavg_inc(HRate,1)},
  
      case HeartBeats of
          ?POC_HB_THRESHOLD - 1 ->
              State2 = reset_timer(save_status(?SAVE_MODE, NodeState, State1)),
              {next_state, NodeState, State2#state{heartbeats=HeartBeats + 1}};
          ?POC_HB_THRESHOLD ->
              {next_state, StateName, State1};
          _ ->
              {next_state, NodeState, reset_timer(save_status(?SAVE_MODE, NodeState, State1))}
      end;
  handle_info(down, _StateName, State) ->
      {next_state, down, save_status(?SAVE_MODE, down, State#state{heartbeats=0})};
  handle_info({timeout, _Ref, update_avg}, StateName, #state{heartbeat_rate=HRate}=State) ->
      {next_state, StateName, State#state{heartbeat_rate=eavg_tick(HRate)} };
  handle_info(Info, StateName, State) ->
      lager:error("Strange message ~p received in state ~p", [Info, StateName]),
      {next_state, StateName, State}.
  
  
  