public StateMachineInstanceConnectionConfigurator <T> UsingInstance(T instance)
        {
            var instanceConfigurator = new StateMachineInstanceConnectionConfiguratorImpl <T>(instance);

            _configurator = instanceConfigurator;

            return(instanceConfigurator);
        }
        public StateMachineConnectionConfigurator <T, TKey, TBinding> BindUsing <TBinding, TKey>()
            where TBinding : StateMachineBinding <T, TKey>
        {
            var configurator = new StateMachineConnectionConfiguratorImpl <T, TKey, TBinding>();

            _configurator = configurator;

            return(configurator);
        }
//		public void AddChannel<TChannel>(Channel<TChannel> channel)
//		{
//			var configurator = new TypedChannelConfigurator<TChannel>(channel);
//
//			_configurators.Add(configurator);
//		}
//
//		public void AddUntypedChannel(UntypedChannel channel)
//		{
//			var configurator = new UntypedChannelConfigurator(channel);
//
//			_configurators.Add(configurator);
//		}

        public void AddConfigurator(ConnectionBuilderConfigurator configurator)
        {
            _configurators.Add(configurator);
        }
//		public void AddChannel<TChannel>(Channel<TChannel> channel)
//		{
//			var configurator = new TypedChannelConfigurator<TChannel>(channel);
//
//			_configurators.Add(configurator);
//		}
//
//		public void AddUntypedChannel(UntypedChannel channel)
//		{
//			var configurator = new UntypedChannelConfigurator(channel);
//
//			_configurators.Add(configurator);
//		}

		public void AddConfigurator(ConnectionBuilderConfigurator configurator)
		{
			_configurators.Add(configurator);
		}