anchor.diff:      FullList = lists:seq(0, K + M - 1),
       RepairList = [N rem (K + M) || N <- lists:seq(Key, Key + Erasure - 1)],
       RemainList = lists:subtract(FullList, RepairList),
  -    FilterList = filter_block(BlockWithIdList, RemainList),
  -    Selected = lists:sublist(FilterList, 1, K),
  +    AvailList = lists:sublist(RemainList, 1, K),
  +    Selected = filter_block(BlockWithIdList, AvailList),
       case leo_jerasure:repair(Selected, RepairList, Coding, CodingParams) of
           {error, Cause} ->
               {error, Cause, State};
  
positive.code:     IdList = lists:seq(0, N - 1),
      BlockWithIdList = lists:zip(BlockList, IdList),
  
      ?debugFmt('Prepared Blocks for ~p ~p [~p Bytes]', [Coding, CodingParams, BinSize]),
      {ok, #state {coding = Coding,
                   coding_params = CodingParams,
                   bin = Bin,
                   bin_size = BinSize,
                   block_id_list = BlockWithIdList,
                   erasure = Erasure}}.
  
  run(encode, KeyGen, ValGen, #state{ coding = Coding, coding_params = CodingParams } = State) ->
      _Key = KeyGen(),
  
negative.code: 
  run(decode, KeyGen, _ValGen, #state{coding = Coding, coding_params = CodingParams, 
                                     bin_size = BinSize, block_id_list = BlockWithIdList,
                                     erasure_comb = ErasureCombs, erasure_comb_size = ErasureCombSize } = State) ->
      Key = KeyGen(),
      {K, M, _} = CodingParams,
      ErasureList = lists:nth(Key rem ErasureCombSize + 1, ErasureCombs),
      FullList = lists:seq(0, K + M - 1),
      RemainList = lists:subtract(FullList, ErasureList),
      AvailList = lists:sublist(RemainList, 1, K),
      Selected = filter_block(BlockWithIdList, AvailList),
      case leo_jerasure:decode(Selected, BinSize, Coding, CodingParams) of
          {error, Cause} ->
              {error, Cause, State};
  