anchor.diff:  -behaviour(gen_server).
   
   -export([start_link/1, init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
  --export([authorize/1, say/1, do/1, cleanup/1, npcize/1, npcize/2, move/2]).
  +-export([authorize/1, say/1, do/1, cleanup/1, npcize/1, npcize/2, move/2, status/0]).
   
   -import(mud_utils, [json_to_file/2, publish/2, sid/1, trigger/1, state/1, file_to_json/1, prop/2, prop/3]).
   -import(mud_utils, [mk_error/1, mk_reply/2, mk_store/1, update/3, subscribe/2, unsubscribe/2, remove/2]).
  
positive.code: 
  move(Who, Where) when is_binary(Who) andalso is_binary(Where) ->
      gen_server:cast(?MODULE, {move, Who, Where}).
  
  %% Gen server handlers:
  handle_call({new_character, Nick, Password, Sid}, _From, State) ->
  
negative.code: load_game_data() ->
      Resources = mud:get_env(resources),
      lager:notice("Loading MUD resources: ~p...", [Resources]),
      State = #state{
                 locations = [],
                 passwd = load_passwords(filename:join([Resources, <<"passwd.json">>])),
                 players = load_players(filename:join([Resources, <<"players.json">>])),
                 items = load_items(filename:join([Resources, <<"items.json">>])),
                 online_players = []
                },
      load_locations(filename:join([Resources, <<"locations.json">>]), State).
  
  save_game_data(State) ->
      Resources = mud:get_env(resources),
  