anchor.diff:  %%--------------------------------------------------------------------
   handle_cast({add_method, Address, Module, Function}, State) ->
       Methods = State#state.methods,
  -    {noreply, State#state{methods = [{Address, Module, Function} | Methods]}};
  -handle_cast({delete_method, Address}, #state{methods = Methods} = State) ->
  -    {noreply, State#state{methods = lists:keydelete(Address, 1, Methods)}}.
  +    ets:insert(Methods, {string:tokens(Address, "/"), {Module, Function}}),
  +    {noreply, State};
  +handle_cast({delete_method, Address}, State) ->
  +    Methods = State#state.methods,
  +    ets:delete(Methods, string:tokens(Address, "/")),
  +    {noreply, State}.
   
   %%--------------------------------------------------------------------
   %% @private
  
positive.code: 
  -define(SERVER, ?MODULE). 
  
  -record(state, {socket, methods = []}).
  
  %%%===================================================================
  %%% API
  
negative.code:     Options = [binary, {active, once}, {recbuf, RecBuf}],
      case gen_udp:open(Port, Options) of
  	{ok, Socket} ->
  	    Methods = ets:new(osc_methods, [named_table, ordered_set]),
  	    {ok, #state{socket = Socket, methods = Methods}};
  	{error, Reason} ->
  	    error_logger:error_report({?MODULE,udp_open,Reason}),
  	    {stop, Reason}
  