anchor.diff:  -spec map_key_to_interval(?RT:key(), intervals:interval()) -> ?RT:key().
   map_key_to_interval(Key, I) ->
       RGrp = [K || K <- lists:sort(?RT:get_replica_keys(Key)), intervals:in(K, I)],
  -    case length(RGrp) of
  -        0 -> erlang:error(e);
  -        1 -> erlang:hd(RGrp);
  -        _ ->
  -            RGrpDis = [{X, ?RT:get_range(Key, X)} || X <- RGrp],
  -            element(1, erlang:hd(lists:keysort(2, RGrpDis)))
  +    case RGrp of
  +        [R] -> R;
  +        [_|_] -> RGrpDis = [case X of
  +                                Key -> {X, 0};
  +                                _ -> {X, min(?RT:get_range(Key, X), ?RT:get_range(X, Key))}
  +                            end || X <- RGrp],
  +                 element(1, erlang:hd(lists:keysort(2, RGrpDis)))
       end.
   
   -spec map_key_to_quadrant(?RT:key(), pos_integer()) -> ?RT:key().
  
positive.code:                         ownerLocalPid = Owner,
                          ownerRemotePid = OwnerR,
                          dest_rr_pid = DestRU_Pid,
                          struct = #bloom_recon_struct{ bloom = BF},
                          stats = Stats }) ->
      %if rest interval is non empty start another sync    
      SID = rr_recon_stats:get(session_id, Stats),
  
negative.code: -export([encodeBlob/2, decodeBlob/1,
           map_key_to_interval/2,
           mapInterval/2, map_key_to_quadrant/2, 
           get_key_quadrant/1, get_interval_quadrant/1,
           find_intersection/2]).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % debug
  