anchor.diff:      {Mega, Sec, _} = os:timestamp(),
       ?SECONDS_FROM_GREGORIAN_BASE_TO_EPOCH + Mega * 1000000 + Sec.
   
  -%%%
  -%% @private step sizes must be divisible
  -
   divisibility_check([{_, _}]) -> true;
   divisibility_check([]) -> true;
   divisibility_check([{Step1, _}, {Step2, _} = H2 | T]) ->
  
positive.code: -define(SECONDS_FROM_GREGORIAN_BASE_TO_EPOCH,
           (?DAYS_FROM_GREGORIAN_BASE_TO_EPOCH * 24*60*60)).
  
  new(Args) ->
      new(Args, []).
  
  new(Args, Opts) ->
      Xff = ?pval(xff, Opts, 0.5),
      Consolidation = ?pval(consolidation, Opts, average),
      Divisible = divisibility_check(Args),
  
      case Divisible of
          true ->
              Archives = lists:map(fun({Step, Size}) -> #archive{step=Step, size=Size} end, Args),
              #rrd{archives=Archives, consolidation=Consolidation, xff=Xff};
          false ->
              {error, not_divisible}
  
negative.code:     points/1,
      table/2,
      step_size/1,
      retentions/1,
      load/1,
      save/2
  ]).
  
  -record(rrd, {
  