anchor.diff:  %%%============================================================================
   init([]) -> {ok, []}.
   
  -handle_event({cmd, _Bot, _From, _To, Cmd}, State) ->
  -    io:format("CMD: ~p~n", [Cmd]),
  +handle_event({cmd, _Bot, From, To, Cmd}, State) ->
  +    Str = binary_to_list(Cmd),
  +    Tokens = lists:map(fun string:to_lower/1, string:tokens(Str, " ")),
  +    case Tokens of
  +        ["fac", Arg] -> 
  +            handle_fac_command(From, To, Arg);
  +        ["fmt", Fmt, Arg] ->
  +            handle_fmt_command(From, To, Fmt, Arg);
  +        ["fread", Fmt, Arg] ->
  +            handle_fread_command(From, To, Fmt, Arg);
  +        _ -> void
  +    end,
       {ok, State};
   
   handle_event(_Event, State) -> {ok, State}.
  
positive.code: 
  terminate(_Reason, _State) -> ok.
  
  code_change(_OldVsn, State, _Extra) -> {ok, State}.
negative.code: %% gen_event callbacks
  -export([init/1, handle_event/2, handle_call/2, handle_info/2, 
           terminate/2, code_change/3]).
  
  %%%============================================================================
  %%% API
  %%%============================================================================
  