public IBusService Create(IServiceBus bus)
		{
			string path = bus.ControlBus.Endpoint.Address.Uri.AbsolutePath;

			Uri uri = new UriBuilder("msmq-pgm", _multicastAddress.Address.ToString(), _multicastAddress.Port, path).Uri;
			Uri clientUri = uri.AppendToPath("_subscriptions");

			var builder = new ControlBusBuilderImpl(new ServiceBusSettings
				{
					ConcurrentConsumerLimit = 1,
					ConcurrentReceiverLimit = 1,
					// REVIEW get rid of this damn thing (what thing, I don't get it, if Dru doesn't than remove this todo)
					AutoStart = true,
					EndpointCache = bus.EndpointCache,
					InputAddress = clientUri,
					ReceiveTimeout = 3.Seconds(),
				});

			IControlBus subscriptionBus = builder.Build();

			var service = new MulticastSubscriptionClient(subscriptionBus, clientUri, _networkKey);

			return service;
		}
		public SubscriptionObserver Create(IServiceBus bus, SubscriptionRouter router)
		{
			string path = bus.ControlBus.Endpoint.Address.Uri.AbsolutePath;

			Uri uri = new UriBuilder("msmq-pgm", _multicastAddress.Address.ToString(), _multicastAddress.Port, path).Uri;
			Uri clientUri = uri.AppendToPath("_subscriptions");

			var builder = new ControlBusBuilderImpl(new ServiceBusSettings
				{
					ConcurrentConsumerLimit = 1,
					ConcurrentReceiverLimit = 1,
					EndpointCache = bus.EndpointCache,
					InputAddress = clientUri,
					ReceiveTimeout = 3.Seconds(),
					Network = router.Network,
					AutoStart = true,
				});

			IControlBus subscriptionBus = builder.Build();

			var service = new MulticastSubscriptionClient(subscriptionBus, router);

			return service;
		}
        public SubscriptionObserver Create(IServiceBus bus, SubscriptionRouter router)
        {
            string path = bus.ControlBus.Endpoint.Address.Uri.AbsolutePath;

            Uri uri       = new UriBuilder("msmq-pgm", _multicastAddress.Address.ToString(), _multicastAddress.Port, path).Uri;
            Uri clientUri = uri.AppendToPath("_subscriptions");

            var builder = new ControlBusBuilderImpl(new ServiceBusSettings
            {
                ConcurrentConsumerLimit = 1,
                ConcurrentReceiverLimit = 1,
                EndpointCache           = bus.EndpointCache,
                InputAddress            = clientUri,
                ReceiveTimeout          = 3.Seconds(),
                Network   = router.Network,
                AutoStart = true,
            });

            IControlBus subscriptionBus = builder.Build();

            var service = new MulticastSubscriptionClient(subscriptionBus, router);

            return(service);
        }