anchor.diff:        {ok, true} -> true;
         _ -> false
      end,
  -   {ok, #state{document_root = DocRoot, node = node(), utc_log = UtcLog}}.
  +   Nodes = get_rbx_nodes(),
  +   {ok, #state{document_root = DocRoot, nodes = Nodes, utc_log = UtcLog}}.
   
  -handle_call(get_types, _, State) ->
  -   {reply, rbx:get_types(State#state.node), State};
  -handle_call({get_reports, Filters}, _From, State) ->
  -   Records = rbx:list(State#state.node, Filters),
  -   {reply, {Records, State#state.utc_log}, State};
  -handle_call({get_sel_reports, RecList}, _From, State) ->
  -   Records = rbx:show(State#state.node, RecList),
  +handle_call({get_types, Node}, _, State) ->
  +   {reply, rbx:get_types(Node), State};
  +handle_call({get_list, Node, DoRescan, MaxReports, Filters}, _From, State) ->
  +   if DoRescan -> rbx:rescan(Node, MaxReports);
  +   true -> ok
  +   end,
  +   RepList = rbx:list(Node, Filters),
  +   {reply, {RepList, State#state.utc_log}, State};
  +handle_call({get_sel_reports, Node, RecList}, _From, State) ->
  +   Records = rbx:show(Node, RecList),
      FmtRecords = lists:foldr(fun(R, Acc) -> [report_formatter_html:format(R, State#state.utc_log) | Acc] end, [], Records),
      {reply, FmtRecords, State};
   handle_call(get_doc_root, _From, State) ->
      {reply, State#state.document_root, State};
  -handle_call({attach, Node}, _From, State) ->
  -   case net_adm:ping(Node) of
  -      pong ->
  -         Res = rpc:call(Node, erlang, whereis, [rbx]),
  -         if
  -            is_pid(Res) ->
  -               io:format("Attached to node ~p~n", [Node]),
  -               {reply, ok, State#state{node = Node}};
  -            true ->
  -               io:format("rbx not started on ~p~n", [Node]),
  -               {reply, error, State}
  -         end;
  -      pang ->
  -         io:format("Handshake with ~p failed.~n", [Node]),
  -         {reply, error, State}
  -   end;
  -handle_call(attached_node, _From, State) ->
  -   {reply, State#state.node, State};
   handle_call(_, _, State) ->
      {reply, ok, State}.
   
  -handle_cast({rescan, MaxRecords}, State) ->
  -   rbx:rescan(State#state.node, MaxRecords),
  -   {noreply, State};
  -handle_cast(detach, State) ->
  -   {noreply, State#state{node = node()}};
   handle_cast(_Msg, State) ->
      {noreply, State}.
   
  
positive.code: 
  -export([do/1]).
  
  -export([attach/1, detach/0, attached_node/0]).
  
  -record(state, {document_root, node, utc_log = false}).
  
  %=======================================================================================================================
  % public interface
  %=======================================================================================================================
  -spec attach(node()) -> ok.
  attach(Node) ->
     gen_server:call(rbx_inets, {attach, Node}).
  
  -spec detach() -> ok.
  detach() ->
     gen_server:cast(rbx_inets, detach).
  
  -spec attached_node() -> atom().
  attached_node() ->
     gen_server:call(rbx_cons, attached_node).
  
  %=======================================================================================================================
  % gen_server interface functions
  
negative.code: %=======================================================================================================================
  % inets httpd callbacks
  %=======================================================================================================================
  do(#mod{request_uri = Uri, entity_body = Query}) when Uri == "/get_list" ->
     Response = get_list(Query),
     {proceed, [{response, {200, Response}}]};
  do(#mod{request_uri = Uri, entity_body = RecList}) when Uri == "/get_sel_reports" ->
     Response = get_sel_reports(RecList),
  