anchor.diff:  %% Function: start_link() -> {ok,Pid} | ignore | {error,Error}
   %% Description: Starts the server
   %%--------------------------------------------------------------------
  -start_link(Socket) ->
  -  gen_server:start_link({local, ?SERVER}, ?MODULE, [Socket], []).
  +start_link(Socket, Reference) ->
  +  gen_server:start_link({local, Reference}, ?MODULE, [Socket], []).
   
   
   %====================================================================
  
positive.code: -behaviour(gen_server).
  
  %% API
  -export([start_link/1]).
  
  %% gen_server callbacks
  -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
  
negative.code: 
  handle_request({data, RawData}, #state{socket=Socket, player=Player} = _State)  ->
    try
  	%Data = string:strip(string:strip(RawData, right, $\n), right, $\r),
  	[CommandString|Args] = string:tokens(RawData, " \r\n"),
  	Response = command_to_action(CommandString, Args, Player),
  	gen_tcp:send(Socket, Response),
  	gen_tcp:send(Socket, "\r\n> "),
  	{ok}
    catch
  	error:Reason ->
  	    {error, Reason}
    end.
  		    
  
  command_to_action("west", _Args, Player) ->
    {X, Y} = sm_player:move(Player, west),  
    ["You moved to ",integer_to_list(X), ", ", integer_to_list(Y)];
  
  command_to_action("w", _Args, Player) ->
    {X, Y} = sm_player:move(Player, west),  
    ["You moved to ",integer_to_list(X), ", ", integer_to_list(Y)];
  
  command_to_action(_CommandString, _Args, _Player) ->
    %Command = list_to_atom(Data),
    "unrecognized command.".