anchor.diff:          {reset, ModState2} ->
               State2 = State#state{modstate=ModState2},
               step_down(State2)
  -    end;
  -handle_info(quorum_timeout, StateName, State) ->
  -    State2 = quorum_timeout(State),
  -    {next_state, StateName, State2};
  -handle_info(_Info, StateName, State) ->
  -    {next_state, StateName, State}.
  +    end.
   
   -spec terminate(_,_,_) -> ok.
   terminate(_Reason, _StateName, _State) ->
  
positive.code:     {reply, Reply, StateName, State}.
  
  %% -spec handle_info(_, atom(), state()) -> next_state().
  handle_info({'DOWN', Ref, _, Pid, Reason}, StateName,
    #state{mod=Mod, modstate=ModState}=State) ->
      case Mod:handle_down(Ref, Pid, Reason, ModState) of
          false ->
              State2 = maybe_restart_worker(Pid, State),
              {next_state, StateName, State2};
  
negative.code:     {next_state, StateName, State};
  handle_event({watch_leader_status, Pid}, StateName, State = #state{watchers = Watchers}) ->
      _ = notify_leader_status(Pid, StateName, State),
      MRef = erlang:monitor(process, Pid),
      {next_state, StateName, State#state{watchers = [{Pid, MRef} | Watchers]}};
  handle_event({stop_watching, Pid}, StateName, State = #state{watchers = Watchers}) ->
      case remove_watcher(Pid, Watchers) of
          not_found ->
              lager:warning("Tried to stop watching for pid ~p, but did not find it in watcher list"),
              {next_state, StateName, State};
          {MRef, NewWatcherList} ->
              erlang:demonitor(MRef, [flush]),
              {next_state, StateName, State#state{watchers = NewWatcherList}}
      end;
  handle_event({reply, ReqId, Peer, Reply}, StateName, State) ->
      State2 = handle_reply(ReqId, Peer, Reply, State),
      {next_state, StateName, State2};
  