anchor.diff:  unregister(ClientId, Pid) when is_binary(ClientId), is_pid(Pid) ->
   	gen_server:cast(?SERVER, {unregister, ClientId, Pid}).
   
  +getstats(?SERVER) ->
  +    gen_server:call(?SERVER, getstats).
  +
   %% ------------------------------------------------------------------
   %% gen_server Function Definitions
   %% ------------------------------------------------------------------
   
   init([]) ->
   	%on one node
  -	ets:new(?TAB, [set, named_table, protected]),
  +	ets:new(?TABLE, [set, named_table, protected]),
       {ok, none}.
   
   handle_call({register, ClientId, Pid}, _From, State) ->
  -	case ets:lookup(?TAB, ClientId) of
  +	case ets:lookup(?TABLE, ClientId) of
           [{_, Pid, _}] ->
   			lager:error("clientId '~s' has been registered with ~p", [ClientId, Pid]),
               ignore;
  
positive.code: 		 handle_info/2,
           terminate/2,
  		 code_change/3]).
  
  %% ------------------------------------------------------------------
  %% API Function Definitions
  
negative.code: 	end,
  	{reply, ok, State};
  
  handle_call(getstats, _From, State = #state{max = Max}) ->
      Stats = [{total, ets:info(?TABLE, size)}, {max, Max}],
      {reply, Stats, State};
  
  handle_call(_Request, _From, State) ->
      {reply, ok, State}.
  
  handle_cast({unregister, ClientId, Pid}, State) ->
  	case ets:lookup(?TABLE, ClientId) of
  	[{_, Pid, MRef}] ->
  		erlang:demonitor(MRef),
  		ets:delete(?TABLE, ClientId);
  	[_] -> 
  		ignore;
  	[] ->
  