anchor.diff:  
   -spec suite_blocks_sizes(fslogic_blocks:blocks(), fslogic_blocks:blocks(), non_neg_integer(), non_neg_integer()) ->
       fslogic_blocks:blocks().
  -suite_blocks_sizes([], _AllBlocks, _BlockSize, _MinSize) ->
  +suite_blocks_sizes([], _AllBlocks, _StorageBlockSize, _MinSizeToSuite) ->
       [];
  -suite_blocks_sizes([#file_block{size = Size} = Block | Blocks], AllBlocks, BlockSize, MinSize) when
  -    Size < MinSize ->
  -    [Block | suite_blocks_sizes(Blocks, AllBlocks, BlockSize, MinSize)];
  -suite_blocks_sizes([#file_block{offset = Offset, size = Size} = Block | Blocks], AllBlocks, BlockSize, MinSize) ->
  -    Block2 = case (Offset + Size) rem BlockSize of
  +suite_blocks_sizes([#file_block{size = Size} = Block | Blocks], AllBlocks, StorageBlockSize, MinSizeToSuite) when
  +    Size < MinSizeToSuite ->
  +    [Block | suite_blocks_sizes(Blocks, AllBlocks, StorageBlockSize, MinSizeToSuite)];
  +suite_blocks_sizes([#file_block{offset = Offset, size = Size} = Block | Blocks], 
  +    AllBlocks, StorageBlockSize, MinSizeToSuite) ->
  +    Block2 = case (Offset + Size) rem StorageBlockSize of
           0 ->
               Block;
           EndRem ->
  -            ExpectedSize = Size - EndRem + BlockSize,
  +            ExpectedSize = Size - (StorageBlockSize - EndRem),
               suite_block_end(Block, ExpectedSize, AllBlocks)
       end,
   
  -    Suited = case Offset rem BlockSize of
  +    Suited = case Offset rem StorageBlockSize of
           0 ->
               [Block2];
           OffsetRem ->
               ExpectedBeg = Offset - OffsetRem,
  -            PossibleSplitPoint = ExpectedBeg + BlockSize,
  +            PossibleSplitPoint = ExpectedBeg + StorageBlockSize,
               suite_block_offset_or_split(Block2, ExpectedBeg, PossibleSplitPoint, AllBlocks)
       end,
   
  -    Suited ++ suite_blocks_sizes(Blocks, AllBlocks, BlockSize, MinSize).
  +    Suited ++ suite_blocks_sizes(Blocks, AllBlocks, StorageBlockSize, MinSizeToSuite).
   
   -spec suite_block_end(fslogic_blocks:block(), non_neg_integer(), fslogic_blocks:blocks()) -> fslogic_blocks:block().
   suite_block_end(#file_block{offset = Offset, size = Size} = Block, ExpectedSize, AllBlocks) ->
       CanExtend = lists:any(fun(#file_block{offset = CheckO, size = CheckS}) ->
  +        % Verify if source provider posses data needed to extend ending of the block
  +        % (it has been verified before that it has whole block)
           CheckO =< Offset + Size andalso CheckO + CheckS >= Offset + ExpectedSize
       end, AllBlocks),
   
  
positive.code:         {true, _} ->
              [#file_block{offset = ExpectedBeg, size = Size + Offset - ExpectedBeg}];
          {false, true} ->
              [Block#file_block{size = PossibleSplitPoint - Offset},
                  #file_block{offset = PossibleSplitPoint, size = Size + Offset - PossibleSplitPoint}];
          _ ->
  
negative.code:             case storage:get_block_size(LocalStorageId) of
                  undefined ->
                      Requests;
                  0 -> % Helper does not split files into blocks
                      Requests;
                  StorageBlockSize ->
                      ProvidersAllBlocksMap = lists:foldl(fun({ProviderId, AllProviderBlocks, _StorageDetails}, Acc) ->
                          Acc#{ProviderId => AllProviderBlocks}
                      end, #{}, ProvidersAllBlocks),
  
                      MinSizeToSuite = ?BLOCK_SUITING_MIN_SIZE,
                      lists:map(fun({ProviderId, Blocks, StorageDetails}) ->
                          FinalBlocks = suite_blocks_sizes(Blocks, maps:get(ProviderId, ProvidersAllBlocksMap),
                              StorageBlockSize, MinSizeToSuite),
                          {ProviderId, FinalBlocks, StorageDetails}
                      end, Requests)
              end;
  