anchor.diff:                     end},
            #{desc => "order handler 1 to terminate",
              cmd  => fun(#{handler1 := Pid} = _State) ->
  -                           Pid ! {terminate, self(), ok},
  +                           %% Pid ! {terminate, self(), ok},
  +                           ?SEV_ANNOUNCE_TERMINATE(Pid),
                              ok
                      end},
            #{desc => "await handler 1 termination",
              cmd  => fun(#{handler1 := Pid} = State) ->
  -                           receive
  -                               {'DOWN', _, process, Pid, _} ->
  -                                   State1 = maps:remove(csock1,   State),
  -                                   State2 = maps:remove(handler1, State1),
  -                                   {ok, State2}
  -                           end
  +                           ?SEV_AWAIT_TERMINATION(Pid),
  +                           State1 = maps:remove(csock1,   State),
  +                           State2 = maps:remove(handler1, State1),
  +                           {ok, State2}
                      end},
            #{desc => "order handler 2 to terminate",
              cmd  => fun(#{handler2 := Pid} = _State) ->
  -                           Pid ! {terminate, self(), ok},
  +                           ?SEV_ANNOUNCE_TERMINATE(Pid),
                              ok
                      end},
            #{desc => "await handler 2 termination",
              cmd  => fun(#{handler2 := Pid} = State) ->
  -                           receive
  -                               {'DOWN', _, process, Pid, _} ->
  -                                   State1 = maps:remove(csock2,   State),
  -                                   State2 = maps:remove(handler2, State1),
  -                                   {ok, State2}
  -                           end
  +                           ?SEV_AWAIT_TERMINATION(Pid),
  +                           State1 = maps:remove(csock2,   State),
  +                           State2 = maps:remove(handler2, State1),
  +                           {ok, State2}
                      end},
            #{desc => "order handler 3 to terminate",
              cmd  => fun(#{handler3 := Pid} = _State) ->
  -                           Pid ! {terminate, self(), ok},
  +                           ?SEV_ANNOUNCE_TERMINATE(Pid),
                              ok
                      end},
            #{desc => "await handler 3 termination",
              cmd  => fun(#{handler3 := Pid} = State) ->
  -                           receive
  -                               {'DOWN', _, process, Pid, _} ->
  -                                   State1 = maps:remove(csock3,   State),
  -                                   State2 = maps:remove(handler3, State1),
  -                                   {ok, State2}
  -                           end
  +                           ?SEV_AWAIT_TERMINATION(Pid),
  +                           State1 = maps:remove(csock3,   State),
  +                           State2 = maps:remove(handler3, State1),
  +                           {ok, State2}
                      end},
            #{desc => "close listen socket",
              cmd  => fun(#{lsock := LSock} = State) ->
  
positive.code:                            case socket:accept(LSock) of
                                 {ok, Sock} ->
                                     ?SEV_IPRINT("accepted: try start handler"),
                                     {ok, Handler} = sc_rc_tcp_handler_start(1,
                                                                             Recv,
                                                                             Sock),
                                     ?SEV_IPRINT("handler started"),
                                     {ok, State#{csock1   => Sock,
                                                 handler1 => Handler}};
                                 {error, _} = ERROR ->
                                     ERROR
                             end
                     end},
           #{desc => "accept 2",
             cmd  => fun(#{lsock := LSock, recv := Recv} = State) ->
                             case socket:accept(LSock) of
                                 {ok, Sock} ->
                                     ?SEV_IPRINT("accepted: try start handler"),
                                     {ok, Handler} = sc_rc_tcp_handler_start(2,
                                                                             Recv,
                                                                             Sock),
                                     ?SEV_IPRINT("handler started"),
                                     {ok, State#{csock2   => Sock,
                                                 handler2 => Handler}};
                                 {error, _} = ERROR ->
                                     ERROR
                             end
                     end},
           #{desc => "accept 3",
             cmd  => fun(#{lsock := LSock, recv := Recv} = State) ->
                             case socket:accept(LSock) of
                                 {ok, Sock} ->
                                     ?SEV_IPRINT("accepted: try start handler"),
                                     {ok, Handler} = sc_rc_tcp_handler_start(3,
                                                                             Recv,
                                                                             Sock),
                                     ?SEV_IPRINT("handler started"),
                                     {ok, State#{csock3   => Sock,
                                                 handler3 => Handler}};
  
negative.code:                                    ERROR
                             end
                     end},
           #{desc => "await handle 3 ready (init)",
             cmd  => fun(#{tester   := Tester, 
                           handler1 := Handler1, 
                           handler2 := Handler2, 
                           handler3 := Handler3} = _State) ->
                             ?SEV_AWAIT_READY(Handler3, handler3, init, 
                                              [{tester,   Tester},
                                               {handler1, Handler1},
                                               {handler2, Handler2}])
                     end},
           #{desc => "announce ready (accept all three connections)",
             cmd  => fun(#{tester := Tester}) ->
                             ?SEV_ANNOUNCE_READY(Tester, accept),
  