anchor.diff:                try_loop(Module, On, State, ComponentState)
       end.
   
  +-spec loop(module(), atom(), term(), component_state()) -> ok.
   loop(Module, On, State, {_Options, _Slowest, _BPState} = ComponentState) ->
       ?CALLING_RECEIVE(Module),
       receive Msg -> loop(Module, On, Msg, State, ComponentState)
       end.
  -    
  +
  +-spec loop(module(), atom(), comm:message(), term(), component_state()) -> ok.
   loop(Module, On, ReceivedMsg, State, {_Options, _Slowest, _BPState} = ComponentState) ->
       case ReceivedMsg of
           %%%%%%%%%%%%%%%%%%%%
  
positive.code:            [UnknownMessage,Module,On,self(), pid_groups:group_and_name_of(self()), State]),
      {State, ComponentState}.
  
  bp_state_new() ->
      {_BPs = [], _BPActive = false,
       _BP_HB_Q = [], _BPStepped = false,
       _BPStepperPid = unknown}.
  bp_state_get_bps(BPState) -> element(1, BPState).
  bp_state_set_bps(BPState, Val) -> setelement(1, BPState, Val).
  bp_state_get_bpactive(BPState) -> element(2, BPState).
  bp_state_set_bpactive(BPState, Val) -> setelement(2, BPState, Val).
  bp_state_get_queue(BPState) -> element(3, BPState).
  bp_state_set_queue(BPState, Val) -> setelement(3, BPState, Val).
  bp_state_get_bpstepped(BPState) -> element(4, BPState).
  bp_state_set_bpstepped(BPState, Val) -> setelement(4, BPState, Val).
  bp_state_get_bpstepper(BPState) -> element(5, BPState).
  bp_state_set_bpstepper(BPState, Val) -> setelement(5, BPState, Val).
  bp_state_bp_set_cond(BPState, Cond, BPName) ->
      NewBPs = [ {bp_cond, Cond, BPName} | bp_state_get_bps(BPState)],
      bp_state_set_bps(BPState, NewBPs).
  bp_state_bp_set(BPState, MsgTag, BPName) ->
      NewBPs = [ {bp, MsgTag, BPName} | bp_state_get_bps(BPState)],
      bp_state_set_bps(BPState, NewBPs).
  bp_state_bp_del(BPState, BPName) ->
      NewBPs = lists:keydelete(BPName, 3, bp_state_get_bps(BPState)),
      bp_state_set_bps(BPState, NewBPs).
  bp_state_hold_back(BPState, Message) ->
      NewQueue = lists:append(bp_state_get_queue(BPState), [Message]),
      bp_state_set_queue(BPState, NewQueue).
  
  %% @doc release the bp_step function when we executed a bp_step
  bp_step_done(Module, On, Message, ComponentState) ->
      {Options, Slowest, BPState} = ComponentState,
      case {bp_state_get_bpactive(BPState),
  
negative.code:       Message, State,
        {Options, Slowest, {BPs, true, tl(Queue), BPStepped, StepperPid}}, hd(Queue), FromQueue).
  
  -spec handle_bp_request_in_bp(comm:message(), any(), component_state(),
                                bp_message(), boolean())
                               -> component_state().
  handle_bp_request_in_bp(Message, State, ComponentState, BPMsg, FromQueue) ->
      ?TRACE_BP("Handle bp request in bp ~p ~n", [BPMsg]),
      {Options, Slowest, BPState} = ComponentState,
  