anchor.diff:  
   
   handle_call({new_router}, _From, State) ->
  -    {reply, ok, State};
  -    
  -    
  -handle_call({new_router, Name}, _From, State) ->
  -    {reply, ok, State};    
  +	Id = State#state.nextid,
  +	Node = State#state.nextnode,
  +	
  +	ets:insert(State#state.root_table, #router{ id = Id, rootnode = Node } ),
  +	ets:insert(State#state.node_table, #route_node{ key = Node, router = Id } ),
  +	
  +    {reply, Id, State#state{ nextid = Id + 1, nextnode = Node + 1 }};
  +    
  +    
  +handle_call({new_router, Name}, From, State)
  +		when is_atom(Name)  ->
  +	{reply, Id, NewState} = handle_call({new_router}, From, State),
  +	ets:insert(State#state.registry_table, #registry{ name = Name, router = Id } ),
  +	
  +    {reply, Id, NewState}; 
       
       
   handle_call({free_router, Router}, _From, State) ->
  +	Id = get_router(Router),
  +
  +	match_delete(State#state.root_table, #router{ id = Id, _ = '_' }),
  +	match_delete(State#state.node_table, #route_node{ router = Id, _ = '_' }),
  +	match_delete(State#state.registry_table, #registry{ router = Id, _ = '_' }),
  +	
       {reply, ok, State};
   
       
  
positive.code: 
  
  init(_Args) ->
      RouterTable = ets:new(router_table, [protected, set, {read_concurrency, true}, {keypos, 2}]),
      NodeTable = ets:new(node_table, [protected, set, {read_concurrency, true}, {keypos, 2}]),
      
      {ok, #state{ router_table = RouterTable
                 , node_table = NodeTable
                 }}.
  
      
  
negative.code:     gen_server:call(?SERVER, {new_router, Name}).    
      
      
  -spec free( routername() ) -> type:ok_or_error().    
  free(Router) ->
      gen_server:call(?SERVER, {free_router, Router}).
  
      
      
  -spec add( routername(), path(), data() ) -> type:ok_or_error().
  add(Router, Path, Data) ->
      gen_server:call(?SERVER, {add_route, Router, Path, Data}).
      
  
  -spec remove( routername(), path() ) -> type:ok_or_error().    
  remove(Router, Path) ->
      gen_server:call(?SERVER, {remove_route, Router, Path}).
      
      
  
  %%%%% ------------------------------------------------------- %%%%%
      
     
  -spec get( routername(), path() ) -> [data()].
  get(Router, Path) ->
      ok.
      
      
  -spec get( routername(), path(), term() ) -> [data()].
  get(Router, Path, Args) ->
      ok.
      
      
      
  -spec get_with_matchs( routername(), path() ) -> [{data(), bound_path()}].
  get_with_matchs(Router, Path) ->
      ok.
  
  
  -spec get_with_matchs( routername(), path(), term() ) -> [{data(), bound_path()}].
  get_with_matchs(Router, Path, Args) ->
      ok.
  
  