anchor.diff:  
   % states
   -export ([
  -  launch/1,
  +  launch/2,
     launching/2,
     pending/2
   ]).
  
positive.code: %% the current state name StateName is called to handle the event. It is also
  %% called if a timeout occurs.
  %%--------------------------------------------------------------------
  launching({launch}, #state{app = App, host = Host} = State) ->
    Self = self(),
    ?LOG(info, "launching app: ~p on ~p", [App#app.name, Host]),
    rpc:call(Host, app_handler, start_new_instance, [App, Self]),
    {next_state, launching, State};
  
  launching({started_bee, Be}, State) ->
    bee_srv:add_bee(Be),
    Self = self(),
    app_manager:spawn_update_bee_status(Be, Self, 20),
    {next_state, pending, State#state{bee = Be}};
  
negative.code: %%====================================================================
  %% API
  %%====================================================================
  launch(Pid, From) ->
    gen_fsm:send_event(Pid, {launch, From}).
    
  %%--------------------------------------------------------------------
  %% Function: start_link() -> ok,Pid} | ignore | {error,Error}
  