anchor.diff:  
   init(Args) ->
       process_flag(trap_exit, true),
  -    Host     = proplists:get_value(hostname, Args),
  -    Port     = proplists:get_value(port, Args),
   
  -    {ok, Connection} = gen_tcp:connect(Host, Port, [{active, true}, binary], 1000),
  -
  -    {ok, #state{ connection = Connection, args = Args}}.
  +    gen_server:cast(self(), connect),
  +    {ok, #state{ args = Args}}.
   
   
   handle_call({query, Term}, _From, State) ->
  
positive.code:         State#state.connection,
          Query
      ),
      {reply, ok, State}.
  
  
  handle_cast(_Msg, State) ->
      {stop, normal, State}.
  
  
  handle_info({tcp, _Port, <<"CONNECTED ", _/binary>>}, State) ->
      Password    = proplists:get_value(password, State#state.args),
      PasswordBin = erlang:list_to_bitstring(Password),
      gen_tcp:send(
          State#state.connection,
          <<"START search ", PasswordBin/binary, "\n">>
      ),
      {noreply, State};
  
  
  
negative.code: %% Private API
  %% ===================================================================
  
  
  connect(Host, Port) ->
      case gen_tcp:connect(Host, Port, [{active, false}, {packet, line}, binary], 1000) of
          {ok, Connection} ->
              {ok, Connection};
          {error, Reason} ->
              io:format("Connection Failed ~p~n", [Reason]),
              {error, Reason}
      end.
  
  