anchor.diff:  							(Descriptor) -> {error, {invalid_socket_descriptor, Descriptor}}
   						end},
   				{error, missing_wui_socket})),
  -		_Port = erlang:open_port ({spawn_executable, erlang:binary_to_list (WuiExecutable)}, [
  +		PortName = {spawn_executable, erlang:binary_to_list (WuiExecutable)},
  +		PortSettings = [
   				stream, binary,
   				{env, [
   						{"mosaic_node_ip", erlang:binary_to_list (WebmachineSocketIp)},
   						{"mosaic_node_port", erlang:integer_to_list (WebmachineSocketPort)},
   						{"mosaic_node_wui_ip", erlang:binary_to_list (WuiSocketIp)},
  -						{"mosaic_node_wui_port", erlang:integer_to_list (WuiSocketPort)}]}]),
  +						{"mosaic_node_wui_port", erlang:integer_to_list (WuiSocketPort)}]}],
  +		ok = case mosaic_node_sup:start_child_daemon_port (PortName, PortSettings, [{restart, transient}]) of
  +			{ok, _Port} ->
  +				ok;
  +			Error2 = {error, _Reason2} ->
  +				throw (Error2)
  +		end,
   		ok
   	catch
   		throw : ok -> ok;
  -		throw : Error2 = {error, _Reason2} -> Error2
  +		throw : Error3 = {error, _Reason3} -> Error3
   	end.
  -
  -
  -report () ->
  -	try
  -		{WebmachineSocketIp, WebmachineSocketPort} = enforce_ok_1 (mosaic_generic_coders:application_env_get (webmachine_address, mosaic_node,
  -				{decode,
  -						fun
  -							({Ip, Port}) when is_list (Ip), is_integer (Port) -> {ok, {erlang:list_to_binary (Ip), Port}};
  -							(Descriptor) -> {error, {invalid_socket_descriptor, Descriptor}}
  -						end},
  -				{error, missing_webmachine_socket})),
  -		WebmachineSocketFqdn = enforce_ok_1 (mosaic_generic_coders:os_env_get (<<"mosaic_node_fqdn">>,
  -				{decode, fun mosaic_generic_coders:decode_string/1}, {error, missing_webmachine_fqdn})),
  -		WebmachineSocketFqdnString = erlang:binary_to_list (WebmachineSocketFqdn),
  -		WebmachineSocket = {WebmachineSocketIp, WebmachineSocketPort, WebmachineSocketFqdn},
  -		ok = error_logger:info_report (["Configured mOSAIC node webmachine...",
  -					{url, erlang:list_to_binary ("http://" ++ WebmachineSocketFqdnString ++ ":" ++ erlang:integer_to_list (WebmachineSocketPort) ++ "/")},
  -					{webmachine_endpoint, WebmachineSocket}]),
  -		WuiExecutable = try
  -			enforce_ok_1 (mosaic_generic_coders:os_bin_get (<<"mosaic-node-wui--run-node-wui">>))
  -		catch throw : _Error1 = {error, _Reason1} -> undefined end,
  -		{WuiSocketIp, WuiSocketPort} = enforce_ok_1 (mosaic_generic_coders:application_env_get (wui_address, mosaic_node,
  -				{decode,
  -						fun
  -							({Ip, Port}) when is_list (Ip), is_integer (Port) -> {ok, {erlang:list_to_binary (Ip), Port}};
  -							(Descriptor) -> {error, {invalid_socket_descriptor, Descriptor}}
  -						end},
  -				{error, missing_wui_socket})),
  -		WuiSocketFqdn = if
  -			WebmachineSocketIp =:= WuiSocketIp ->
  -				WebmachineSocketFqdn;
  -			true ->
  -				enforce_ok_1 (mosaic_generic_coders:decode_string (WuiSocketIp))
  -		end,
  -		WuiSocketFqdnString = erlang:binary_to_list (WuiSocketFqdn),
  -		WuiSocket = {WuiSocketIp, WuiSocketPort, WuiSocketFqdn},
  -		if
  -			WuiExecutable =/= undefined ->
  -				ok = error_logger:info_report (["Configured mOSAIC node web-ui...",
  -							{url, erlang:list_to_binary ("http://" ++ WuiSocketFqdnString ++ ":" ++ erlang:integer_to_list (WuiSocketPort) ++ "/")},
  -							{wui_endpoint, WuiSocket}]);
  -			true ->
  -				ok
  -		end,
  -		ok
  -	catch throw : Error = {error, _Reason} -> Error end.
   
   
   boot () ->
  
positive.code: 
  
  -export ([start/2, stop/1, boot/0]).
  
  
  -import (mosaic_enforcements, [enforce_ok_1/1]).
  
negative.code: start (normal, defaults) ->
  	try
  		{ok, Supervisor} = start_supervisor (),
  		ok = start_daemons (),
  		% ok = start_discovery (),
  		% ok = start_wui (),
  		{ok, Supervisor, void}
  	catch
  		throw : Error = {error, _Reason} ->
  