anchor.diff:  -define(BAD_LATLNG, <<"Client Error: Bad lat/lng format\n">>).
   -define(BAD_ARGS, <<"Client Error: Bad arguments\n">>).
   -define(SPACE_NOT_FOUND, <<"Space does not exist\n">>).
  -
  +-define(SPACE_NEEDED(State), gen_tcp:send(State#state.socket, <<"Client Error: Must use a namespace\n">>), State).
   
   start_link(Socket) ->
       gen_server:start_link(?MODULE, [Socket], []).
  
positive.code: 
  
  % Lists the existing objects
  process_cmd(State=#state{socket=Sock, space=Sp}, <<"list objects">>) ->
      {ok, Objects} = teles_data_manager:list_objects(Sp),
      send_list(Sock, Objects), State;
  
  
  % Associates an object with a new point
  process_cmd(State=#state{socket=Sock, space=Sp}, <<"associate point ", Rest/binary>>) ->
      case binary:split(Rest, [<<" ">>], [global]) of
          [LatB, LngB, <<"with">>, Obj] ->
  
negative.code: 
  
  % Query the nearest points
  process_cmd(State=#state{space=undefined}, <<"query nearest ", _Rest/binary>>) -> ?SPACE_NEEDED(State);
  process_cmd(State=#state{socket=Sock, space=Sp}, <<"query nearest ", Rest/binary>>) ->
      case binary:split(Rest, [<<" ">>], [global]) of
          [K_str, <<"to">>, LatS, LngS] ->
  