/// <summary>
        /// Adds the source to the pipeline and configures it with the <see cref="configuration"/>
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source"></param>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public IEnvironmentBuilder WithSource <T>(Func <IReadonlyEnvironmentConfiguration, T> source, Action <IEnvironmentConfiguration> configuration)
        {
            var cfg = _configuration?.Clone();

            configuration?.Invoke(cfg);
            _instance.AddSource(source, cfg);
            return(this);
        }
 /// <summary>
 /// Adds the source to the pipeline
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="source"></param>
 /// <returns></returns>
 public IEnvironmentBuilder WithSource <T>(Func <IReadonlyEnvironmentConfiguration, T> source)
 {
     _instance.AddSource(source, _configuration.Clone());
     return(this);
 }