anchor.diff:  
   -spec(start_link/3 :: (any(), list(), list()) -> {ok, pid()}).
   start_link(Module, Args, Options) ->
  -    
       Pid = spawn_link(?MODULE, start, [Module, Args, Options, self()]),
       receive
           {started, Pid} ->
  
positive.code: 
  -export([start_link/2, start_link/3, start/4, start/2, start/3,wait_for_ok/0]).
  
  %================================================================================
  % behaviour definition
  %================================================================================
  
negative.code: -ifndef(SIMULATION).
  loop(Module, State, {Options, Slowest} = _ComponentState) ->
      receive
          {'$gen_compnent', sleep , Time} ->
              timer:sleep(Time),
              loop(Module, State, _ComponentState);
          {'$gen_compnent', kill} ->
              ok;
          Message ->
              %Start = erlang:now(),
              case (try Module:on(Message, State) catch
                                                      throw:Term -> {exception, Term};
                                                      exit:Reason -> {exception,Reason};
  