anchor.diff:  %%                     {stop, Reason}
   %% @end
   %%--------------------------------------------------------------------
  -init([]) ->
  +init(Opts) ->
  +
  +    %% Dig out the mod opts.
  +    %% { modules, [ {module1, [{opt1, val}, ...]}, {module2, [...]}]}
  +    {value, {modules, Modules}, _Opts1 } = lists:keytake(modules, 1, Opts), 
  +    
  +    %% Traverse list and init modules.
  +    %% If init fails, leave module out of module state list
  +    ModStates = lists:foldl(fun(ModConfig, Acc) ->  
  +			      { Mod, ModOpts} = ModConfig,
  +			      case Mod:init(ModOpts) of 
  +				  {ok, St} ->[ { Mod, St } | Acc ];
  +				  _ -> Acc
  +			      end
  +		       end, [], Modules),
  +    
  +    
  +
       {ok, #st{ 
  -      subscribers = []
  +       subscribers = [],
  +       mod_states = ModStates
         }}.
   
   %%--------------------------------------------------------------------
  
positive.code: 	 }).
  
  
  -record(st, { 
  	  subscribers:: [ #subscriber{} ]
  	 }).
  
  %%%===================================================================
  
negative.code: %%                                   {stop, Reason, State}
  %% @end
  %%--------------------------------------------------------------------
  handle_call({subscribe, Type, Recipient, Probe, DataPoint, Interval }, _From, St) ->
  
      %% FIXME: Validate Probe and datapoint
      %% FIXME: Monitor on pids.
  
      {ok, TRef } = timer:send_after(Interval, self(), 
  				   { report, Type, Recipient, Probe, DataPoint, Interval }),
  
      {reply, ok, St#st { subscribers = [ #subscriber {
  					   key = { Type, Recipient, Probe, DataPoint},
  