anchor.diff:      State1 = State#state{logging=Level},
       {next_state, StateName, State1};
   handle_event(rehab, up, State) ->
  -    State1 = send_to_rehab(State),
  +    State1 = send_to_rehab(up, State),
       {next_state, up, State1};
   handle_event(rehab, down, State) ->
       {next_state, down, State};
  
positive.code:         down ->
              gproc:send(subscribers_key(NodeRef), {down, NodeRef}),
              kick_from_rehab(State);
          up -> send_to_rehab(State)
      end.
  
  nlog(normal, Format, Args) ->
  
negative.code: %% Private Functions
  %%-----------------------------------------------------------------------------
  
  send_to_rehab(up, #state{node_ref = NodeRef, rehab_timer = TimerRef0} = State) when TimerRef0 =:= undefined ->
      {ok, TimerRef} = timer:send_interval(rehab_timer(), abort_nodes),
      lager:info("Added ~p to Rehab", [NodeRef]),
      State#state{rehab_timer = TimerRef};
  send_to_rehab(down, #state{node_ref = NodeRef} = State) ->
      lager:info("Node ~p is down can't be sent to Rehab", [NodeRef]),
      State;
  send_to_rehab(_Status, #state{node_ref = NodeRef} = State) ->
      lager:info("~p already in rehab", [NodeRef]),
      State.
  
  kick_from_rehab(#state{rehab_timer = undefined} = State) ->
      State;
  kick_from_rehab(#state{rehab_timer = TimerRef, node_ref = NodeRef} = State) ->
      case timer:cancel(TimerRef) of
          {ok, cancel} ->
              lager:info("Removed ~p from Rehab", [NodeRef]),
              State#state{rehab_timer = undefined};
          Error ->
              lager:info("Error Canceling Timer: ~p~n", [Error]),
              State
      end.
  
  
  rehab_timer() ->
      pushy_util:get_env(pushy, rehab_timer, fun is_integer/1).
  