/// <summary>
        /// Called at the start of the service
        /// </summary>
        /// <param name="args"></param>
        protected override void OnStart(string[] args)
        {
            Configure(_dependencyResolver.Resolve <IConfigurationProvider>());
            foreach (var listenerConfiguration in _listenerConfigurations)
            {
                _actorManager.CreateAndStartListener(listenerConfiguration, _dependencyResolver);
            }

            SubscribeToListenerReports();
            SubscribeToWorkerReports();
            SubscribeToActionRequests();

            Task.Run(() =>
            {
                DoWithTryCatch(ListenerHealthCheck);
            });

            Task.Run(() =>
            {
                DoWithTryCatch(WorkerHealthCheck);
            });

            //TODO: "composer action" queue, requests for data and instructions on how to behave

            base.OnStart(args);
        }