anchor.diff:               #{data := DataAcc, from := From, status_code
                  := StatusCode, headers := Headers} = State) ->
       NewData = <<DataAcc/binary, Data/binary>>,
  -    Result= {ok, #{status_code => StatusCode,
  +    Result = {ok, #{status_code => StatusCode,
                      headers => Headers,
                      body => NewData
                     }},
       gen_fsm:reply(From, Result),
  -    {next_state, at_rest, State};
  +    {next_state, at_rest, State, 0};
   receive_data({gun_error, _Pid, StreamRef, _Reason},
                #{stream := StreamRef} = State) ->
  -    {next_state, at_rest, State}.
  +    {next_state, at_rest, State, 0}.
  +
  +%% @private
  +-spec receive_chunk(term(), pid(), term()) -> term().
  +receive_chunk(Event, From, State) ->
  +  enqueue_work_or_stop(receive_chunk, Event, From, State).
   
   %% @private
   %% @doc Chunked data response
  
positive.code: %% gen_fsm states
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  %% @private
  -spec at_rest(term(), pid(), term()) -> term().
  at_rest({get_async, {HandleEvent, AsyncMode}, Args}, From, #{pid := Pid}) ->
      StreamRef = do_http_verb(get, Pid, Args),
      CleanState = clean_state(),
      NewState = CleanState#{
                   from => From,
                   pid => Pid,
                   stream => StreamRef,
                   handle_event => HandleEvent,
                   async => true,
                   async_mode => AsyncMode
                  },
      {next_state, wait_response, NewState};
  at_rest({HttpVerb, Args}, From, #{pid := Pid}) ->
      StreamRef = do_http_verb(HttpVerb, Pid, Args),
      CleanState = clean_state(),
      NewState = CleanState#{
                   pid => Pid,
                   stream => StreamRef,
                   from => From
                  },
      {next_state, wait_response, NewState}.
  
  %% @private
  -spec wait_response(term(), term()) -> term().
  
negative.code: wait_response({gun_error, _Pid, _StreamRef, Error},
                #{from := From} = State) ->
      gen_fsm:reply(From, {error, Error}),
      {next_state, at_rest, State, 0};
  wait_response(Event, State) ->
      {stop, {unexpected, Event}, State}.
  
  %% @private
  -spec receive_data(term(), pid(), term()) -> term().
  receive_data(Event, From, State) ->
    enqueue_work_or_stop(receive_data, Event, From, State).
  
  %% @private
  %% @doc Regular response
  