anchor.diff:  %%------------------------------------------------------------------------------
   -spec unregister_cmd(atom()) -> true.
   unregister_cmd(Cmd) ->
  -    ets:delete(?CMD_TAB, Cmd).
  +    gen_server:cast(?SERVER, {unregister_cmd, Cmd}).
   
   %%------------------------------------------------------------------------------
   %% @doc Run a command
   %% @end
   %%------------------------------------------------------------------------------
  -
   run([]) -> usage();
   
  +run(["help"]) -> usage();
  +
   run([CmdS|Args]) ->
  -    case ets:lookup(?CMD_TAB, list_to_atom(CmdS)) of
  -        [{_, {Mod, Fun}, _}] -> Mod:Fun(Args);
  +    Cmd = list_to_atom(CmdS),
  +    case ets:match(?CMD_TAB, {{'_', Cmd}, '$1', '_'}) of
  +        [[{Mod, Fun}]] -> Mod:Fun(Args);
           [] -> usage() 
       end.
       
  
positive.code: 
  -include("emqttd_cli.hrl").
  
  -export([init/0,
           register_cmd/3,
           unregister_cmd/1,
           run/1]).
  
  -export([status/1,
           vm/1,
           stats/1,
           metrics/1,
           cluster/1,
           clients/1,
           sessions/1,
           listeners/1,
           bridges/1]).
  
  -define(CMD_TAB, mqttd_ctl_cmd).
  
  
negative.code: %%------------------------------------------------------------------------------
  -spec register_cmd(atom(), {module(), atom()}, list()) -> true.
  register_cmd(Cmd, MF, Opts) ->
      gen_server:cast(?SERVER, {register_cmd, Cmd, MF, Opts}).
  
  %%------------------------------------------------------------------------------
  %% @doc Unregister a command
  