anchor.diff:  
   init([Binding, App, Options]) ->
       HandlerSup = start_handler_sup(),
  +    Mod = maybe_cb_init(Options),
       LSock = listen(Binding, Options),
  -    {ok, init_state(HandlerSup, LSock, App), {first_msg, accept}}.
  +    State = #state{
  +               handler_sup=HandlerSup,
  +               lsock=LSock,
  +               app=App,
  +               mod=Mod,
  +               accept_timeout=accept_timeout_opt(Mod, Options)},
  +    {ok, State, {first_msg, accept}}.
  +
  +maybe_cb_init(Options) ->
  +    case proplists:get_value(callback, Options) of
  +        undefined -> undefined;
  +        {Mod, InitArg} ->
  +            Mod:init(InitArg),
  +            Mod
  +    end.
   
   start_handler_sup() ->
       {ok, Sup} = psycho_handler_sup:start_link(),
  
positive.code: 
  handle_msg(accept, noreply, State) ->
      handle_accept(accept(State), State),
      {next_msg, accept, State}.
  
  accept(#state{lsock=LSock}) ->
      gen_tcp:accept(LSock).
  
  handle_accept({ok, Sock}, State) ->
      dispatch_request(Sock, State).
  
  dispatch_request(Sock, #state{handler_sup=Sup, app=App}) ->
      handle_start_handler(psycho_handler_sup:start_handler(Sup, Sock, App)).
  
negative.code: 
  -export([init/1, handle_msg/3]).
  
  -record(state, {handler_sup, lsock, app, mod, accept_timeout}).
  
  -define(DEFAULT_BACKLOG,  128).
  -define(DEFAULT_RECBUF,   8192).
  -define(DEFAULT_ACCEPT_TIMEOUT_FOR_CB, 500).
  
  %%%===================================================================
  %%% Start / init
  