anchor.diff:  init(_Args) ->
   	{ok, #{ subscribers => [] }}.
   
  -handle_call({subscribe, Topic}, From, #{ subscribers => Subs } = State) ->
  -	MonRef = monitor(process, Socket),
  +handle_call({subscribe, Topic}, From, #{ subscribers := Subs } = State) ->
  +	MonRef = monitor(process, From),
   	true = ets:insert(?MODULE, {Topic, From}),
  -	{reply, ok, State#{ subscribers => [{From, MonRef} |Subs] }};
  +	{reply, ok, State#{ subscribers := [{From, MonRef} |Subs] }};
   handle_call(_Request, _From, State) ->
   	{reply, ok, State}.
   
   handle_cast(_Msg, State) ->
   	{noreply, State}.
   
  -handle_info({'DOWN', Ref, _Type, Subscriber, _Exit}, #{ subscribers => Subs } = State) ->
  +handle_info({'DOWN', Ref, _Type, Subscriber, _Exit}, #{ subscribers := Subs } = State) ->
   	ets:select_delete(?MODULE, [{{'_',Subscriber},[],[true]}]),
  -	{noreply, State#{ subscribers => Subs -- {Subscriber, Ref} }};
  +	{noreply, State#{ subscribers := Subs -- [{Subscriber, Ref}] }};
   handle_info(_Info, State) ->
   	{noreply, State}.
   
  
positive.code: 	ok.
  
  subscribe(Topic) ->
          gen_server:call(?MODULE, {subscribe, Topic}).
  
  send(Topic, Message) -> ok.
  
  %% ------------------------------------------------------------------
  %% gen_server Function Definitions
  
negative.code: 
  -export([start_link/0]).
  -export([
  	init_tables/0,
  	subscribe/1,
  	send/2
  ]).
  
  %% ------------------------------------------------------------------
  