anchor.diff:                  {reply, ets:tab2list(Table_Id) , State};
           false -> {driver, {_Module, _Func}, Module_config} = lists:keyfind(driver, 1, Config),
                    {reply, Module_config, State}
  -    end;       
  -
  +    end;
  +handle_call({get_model}, From, State=#state{config = Config}) ->    
  +    Reply = case proplists:get_value(model_fun, Config, []) of
  +        [] -> [];
  +        {Model, Function} -> F=list_to_atom(Function), 
  +                             Fun = fun Model:F/0,
  +                             Fun()
  +    end,
  +    {reply, Reply, State};   
   handle_call(Request, From, State) ->
       Reply = ok,
       {reply, Reply, State}.
  
positive.code:     get_module_config(list_to_atom(Name));
  get_module_config(Name) ->
      gen_server:call(Name, {get_module_config}).
  stop(Name) when is_list(Name) ->
      stop(list_to_atom(Name));
  stop(Name) ->
  
negative.code:     Config_1 = Module:Func({gpio_interrupt, 0, Pin, Status}, Config, Module_config),
      {noreply, State#state{config = Config_1}};
  
  handle_info({external_interrupt, Application,  Body}, State=#state{config = Config}) ->   
      lager:info("external_event from Application : ~p with Body : ~p",[Application, Body]),
      {driver, {Module, Func}, Module_config} = lists:keyfind(driver, 1, Config),
      Config_1 = Module:Func({external_event, Application,  Body}, Config, Module_config),
  