anchor.diff:      async(Key, State, fun() -> do_get_fsm(Key, From, Self, State) end),
       {next_state, leading, State};
   leading_kv(request_failed, _From, State) ->
  -    step_down(State),
  -    prepare(init, State);
  +    step_down(prepare, State);
   leading_kv({local_get, Key}, From, State) ->
       State2 = do_local_get(From, Key, State),
       {next_state, leading, State2};
  
positive.code:                     unpause_workers(State),
                      {reply, ok, leading, State3};
                  {failed, State3} ->
                      step_down(State3),
                      probe(init, set_leader(undefined, State3))
              end;
          {Errors, _NewView} ->
              {reply, {error, Errors}, leading, State}
  
negative.code:             {reply, ok, leading, State2};
          {failed, State2} ->
              send_reply(From, timeout),
              step_down(State2)
      end;
  leading(Msg, From, State) ->
      case leading_kv(Msg, From, State) of
  