anchor.diff:  
   system_code_change(Misc, _, _, _) ->
     {ok, Misc}.
  +
  +
  +cleanup(#{ ref := Ref }, Reason) ->
  +  cleanup(Ref, Reason);
  +cleanup(Ref, Reason) ->
  +  lager:info("closing change feed connection: ~p", [Reason]),
  +  (catch hackney:close(Ref)),
  +  
  +  ok.
   
   
   get_changes(State = #{ changes := Q }) ->
  
positive.code:       wait_changes(State);
      {hackney_response, Ref, {status, 404, _}} ->
        lager:error("~s not_found ~n", [?MODULE_STRING]),
        exit(not_found);
      {hackney_response, Ref, {status, Status, Reason}} ->
        lager:error(
          "~s request bad status ~p(~p)~n",
          [?MODULE_STRING, Status, Reason]
        ),
        exit({http_error, Status, Reason});
      {hackney_response, Ref, {error, Reason}} ->
        lager:error(
          "~s hackney error: ~p~n",
          [?MODULE_STRING, Reason]
        ),
        exit(Reason())
    after ?TIMEOUT ->
      exit(timeout)
    end.
  
  
negative.code:         {wait_changes, State})
    after ?TIMEOUT ->
      lager:error("~s timeout: ~n", [?MODULE_STRING]),
      cleanup(State, timeout),
      exit(timeout)
    end.
  
  