anchor.diff:  clean_data() ->
       gen_server:cast(?MODULE, clean_data).
   
  +% helper function because API to timer:apply_after doesn't allow
  +% for calling a function reference, only function by atom.
  +caller(Fun) ->
  +    Fun().
  +
   %------------------------------------------------------------------------------
   % gen_server callbacks
   %------------------------------------------------------------------------------
  
positive.code: % local functions
  %------------------------------------------------------------------------------
  
  interval_timer(IntervalSec, Func) ->
      timer:apply_interval(IntervalSec*1000, ?MODULE, Func, []).
  
  nci_min_interval() ->
      {seconds, Time} = tap_config:getconfig(nci_min_interval),
  
negative.code: 
  handle_cast(start, State) ->
      DataMaxAge = data_max_age(),
      {ok, NCITimer} = interval_timer(fun nci_min_interval/0, fun push_nci/0),
      {ok, CleanTimer} = interval_timer(fun clean_interval/0, fun clean_data/0),
      {noreply, State#?STATE{nci_update_timer = NCITimer,
                             clean_timer = CleanTimer,
                             data_max_age = DataMaxAge}};
  