anchor.diff:  
   %% when this new data
   %% is the last chunk
  -not_full({augment_data, NewData}, _From, State=#state{content_length=CLength,
  -                                                      num_bytes_received=NumBytesReceived,
  -                                                      current_buffer_size=CurrentBufferSize,
  -                                                      max_buffer_size=MaxBufferSize}) ->
  -    case handle_chunk(CLength, NumBytesReceived, size(NewData), CurrentBufferSize, MaxBufferSize) of
  +not_full({augment_data, NewData}, _From, 
  +                State=#state{content_length=CLength,
  +                             num_bytes_received=NumBytesReceived,
  +                             current_buffer_size=CurrentBufferSize,
  +                             max_buffer_size=MaxBufferSize}) ->
  +
  +    case handle_chunk(CLength, NumBytesReceived, size(NewData),
  +                             CurrentBufferSize, MaxBufferSize) of
           last_chunk ->
               %% handle_receiving_last_chunk(),
               Reply = ok,
  
positive.code:                 current_buffer_size :: non_neg_integer(),
                  buffer_queue=queue:new(),
                  remainder_data :: binary(),
                  unacked_writes=ordsets:new()}).
  
  %%%===================================================================
  
negative.code: %% and we were already not full,
  %% we're still not full
  not_full({block_written, _BlockID, _WriterPid}, State) ->
      %% 1. Remove this block from the
      %%    unacked_writes set
      %% 2. Add this writer back to the
      %%    free_writers set
      %% 3. Maybe write another block
      {next_state, not_full, State}.
  
  full({block_written, _BlockID, _WriterPid}, State) ->
      %% 1. Remove this block from the
      %%    unacked_writes set
      %% 2. Add this writer back to the
      %%    free_writers set
      %% 3. Maybe write another block
      {next_state, not_full, State}.
  
  all_received({block_written, BlockID, _WriterPid},
                      State=#state{unacked_writes=UnackedWrites}) ->
      %% 1. Remove this block from the
      %%    unacked_writes set
      %% 2. Add this writer back to the
      %%    free_writers set
      %% 3. Maybe write another block
      NewUnackedSet = ordsets:del_element(BlockID, UnackedWrites),
      case ordsets:size(NewUnackedSet) of
          0 ->
  