anchor.diff:  key_fetch(Method, EJson) ->
       NodeRef = get_node_ref(EJson),
       get_key_for_method(Method, NodeRef).
  +
  +-spec do_send(#state{}, json_term()) -> #state{}.
  +do_send(State, Message) ->
  +    do_send(State, hmac_sha256, Message).
  +
  +-spec do_send(#state{}, atom(), json_term()) -> #state{}.
  +do_send(#state{node_addr=NodeAddr, node_ref=NodeRef} = State, Method, Message) ->
  +    {ok, Key} = get_key_for_method(Method, NodeRef),
  +    Packets = ?TIME_IT(pushy_messaging, make_message, (proto_v2, Method, Key, Message)),
  +    ok = pushy_command_switch:send_raw([NodeAddr | Packets]),
  +    State.
  
positive.code: %% API
  -export([start_link/2,
           recv_msg/1,
           heartbeat/1,
           status/1,
           watch/1,
  
negative.code: handle_info(rehab_again, rehab, State) ->
      State1 = force_abort(State),
      {next_state, rehab, State1};
  handle_info({send_message, Method, Message}, CurrentState, State) ->
      State1 = do_send(State, Method, Message),
      {next_state, CurrentState, State1};
  handle_info({raw_message, Message}, CurrentState, State) ->
      maybe_process_and_dispatch_message(CurrentState, State, Message);
  handle_info({'DOWN', _MRef, _Type, Pid, _Reason}, StateName, #state{watchers=Watchers}=State) ->
  