anchor.diff:  %% initialize. To ensure a synchronized start-up procedure, this function
   %% does not return until Module:init/1 has returned.
   %%--------------------------------------------------------------------
  -start_link(App, Host) ->
  -  gen_fsm:start_link(?MODULE, [App, Host], []).
  +start_link(App, Host, Sha) ->
  +  gen_fsm:start_link(?MODULE, [App, Host, Sha], []).
   
   %%====================================================================
   %% gen_fsm callbacks
  
positive.code: %% the current state name StateName is called to handle the event. It is also
  %% called if a timeout occurs.
  %%--------------------------------------------------------------------
  launching({launch, From}, #state{app = App, host = Host} = State) ->
    Self = self(),
    io:format("Calling ~p, app_handler:start_new_instance~n", [Host]),
    rpc:call(Host, app_handler, start_new_instance, [App, Self, From]),
    {next_state, launching, State#state{from = From}};
  
  launching({started_bee, Be}, State) ->
  
negative.code:   io:format("Uncaught event: ~p while in state: ~p ~n", [Event, launching]),
    {next_state, launching, State}.
  
  pending({updated_bee_status, BackendStatus}, #state{app = App, bee = Bee, from = From, latest_sha = Sha} = State) ->
    ?LOG(info, "Application started ~p: ~p", [BackendStatus, App#app.name]),
    % App started normally
    From ! {bee_started_normally, Bee, App#app{sha = Sha}},
    {stop, normal, State};
    
  pending(_Event, State) ->
  