anchor.diff:  	{start_children, ChildSpecList} ->
   	    start_children(ChildSpecList),
   	    loop({Timeout, ChildList});
  -	{ok, ChildPid, ChildSpec} ->
  -	    io:format("Child for Spec '~p' is started.~n", [ChildSpec]),
  -	    NewChildList = [{ChildPid, ChildSpec}|ChildList],
  +	{ok, child_started, Child} ->
  +	    io:format("Child for Spec '~p' is started.~n", [Child#child_state.spec]),
  +	    NewChildList = [Child|ChildList],
   	    loop({Timeout, NewChildList});
   	{error, child_not_started, ChildSpec} ->
   	    io:format("Child for spec ~p cannot be started.~n", [ChildSpec]),
  
positive.code:     end.
  
  restart_child(Pid, ChildList, normal) ->
      case lists:keyfind(Pid, 1, ChildList) of
  	{Pid, {transient, _ChildModule}} ->
  	    ChildList;
  	{Pid, {permanent, _ChildModule} = ChildSpec} ->
  	    case start_child(ChildSpec) of
  		{ok, NewPid} ->
  		    [{NewPid, ChildSpec}|lists:keydelete(Pid, 1, ChildList)];
  		{error, child_not_started, ChildSpec} ->
  		    lists:keydelete(Pid, 1, ChildList)
  	    end;
  
negative.code: -define(Threshold, 5).
  
  -define(StartChildTimeout, 6000).
  
  -record(child_state, {pid, id, spec}).
  
  %%%===================================================================
  %%% API functions
  