anchor.diff:              % find highest precision and lower archives to update
               {Archive, LowerArchives} = highest_precision_archive(TimeDiff, Header#metadata.archives),
   
  -            % seek first data point
  -            {ok, _} = file:position(IO, {bof, Archive#archive_header.offset}),
  -
               % read base data point
  -            {BaseInterval, _Value} = read_point(IO),
  +            {BaseInterval, _Value} = point_at(IO, Archive#archive_header.offset),
               Position = get_data_point_offset(Archive, TimeStamp, BaseInterval),
   
               % write data point based on initial data point
  
positive.code:     end.
  
  
  mod(A, B) when A < 0 -> erlang:abs(A) rem B;
  mod(A, B) -> A rem B.
  
  
negative.code:             AggValue = aggregate(AggType, Values, NumPoints),
              lager:info("calculated aggregate [~p] ~p [values ~p]", [AggType, AggValue, Values]),
              Point = data_point(LowerInterval, AggValue),
              {BaseInterval, _} = point_at(IO, Lower#archive_header.offset),
              Offset = get_data_point_offset(Lower, LowerInterval, BaseInterval),
              {ok, _} = file:position(IO, {bof, Offset}),
              ok = file:write(IO, Point),
  