anchor.diff:  
   start_thrift_cloud_server(Args) ->  
     StartCmd = build_start_command("run", Args),
  -  % case whereis(cloud_thrift_server) of
  -    % undefined -> 
  -    start_and_link_thrift_server(StartCmd).
  -  %   Node -> Node
  -  % end.  
  +  case whereis(cloud_thrift_server) of
  +    undefined -> start_and_link_thrift_server(StartCmd);
  +    Node -> Node
  +  end.  
     
   start_and_link_thrift_server(StartCmd) ->
     ?INFO("Starting ~p: ~p~n", [?MODULE, StartCmd]),
  -  case os:cmd(StartCmd) of
  +  case (fun() -> os:cmd(StartCmd) end) of
       {error, Reason} ->
         ?INFO("Assuming the thrift_client is already started error: ~p~n", [Reason]),
         ok;
       Pid ->
  -      ?TRACE("Got back: ~p~n", [Pid]),
  -      % case utils:is_process_alive(Pid) of
  -      %   true -> 
  -      %     erlang:register(cloud_thrift_server, Pid),
  -      %     erlang:monitor(process, Pid);
  -      %   _ -> ok
  -      % end,
  +      case utils:is_process_alive(Pid) of
  +        true -> 
  +          erlang:register(cloud_thrift_server, Pid),
  +          erlang:monitor(process, Pid);
  +        _ -> ok
  +      end,
         Pid
     end.
     
  
positive.code: %%                                      {stop, Reason, State}
  %% Description: Handling cast messages
  %%--------------------------------------------------------------------
  handle_cast({cloud_run, CloudName, Fun, [Args]}, #state{start_args = StartArgs} = State) ->
    cloud_run(CloudName, Fun, Args, StartArgs),
    {noreply, State};
    
  handle_cast(_Msg, State) ->
  
negative.code:   end.
    
  
  cloud_run(P, Name, Meth, Args) ->
    Query = #cloudQuery{name=Name},
    case catch thrift_client:call(P, cast_command, [Query, Meth, Args]) of % infinite timeout
      {'EXIT', R} -> 
        case R of
          {timeout, _} -> {error, timeout};
          E -> {error, E}
        end;
      E -> E
    end.
    