IConfigurableGremlinQuerySource IConfigurableGremlinQuerySource.WithLogger(ILogger logger)
            {
                var newModel = _isUserSetModel
                    ? Model
                    : GraphModel.Dynamic(NullLogger.Instance).Relax();

                return(new ConfigurableGremlinQuerySourceImpl(Name, newModel, _isUserSetModel, Executor, IncludedStrategies, ExcludedStrategyNames, logger));
            }
            IConfigurableGremlinQuerySource IConfigurableGremlinQuerySource.UseLogger(ILogger logger)
            {
                var newModel = _isUserSetModel
                    ? Model
                    : GraphModel.Dynamic(NullLogger.Instance);

                return(new ConfigurableGremlinQuerySourceImpl(Name, newModel, Options, _isUserSetModel, Pipeline, IncludedStrategies, ExcludedStrategyNames, logger));
            }
        #pragma warning restore IDE1006 // Naming Styles

        public static IConfigurableGremlinQuerySource Create(string name = "g")
        {
            return(new ConfigurableGremlinQuerySourceImpl(name, GraphModel.Dynamic(NullLogger.Instance).Relax(), false, GremlinQueryExecutor.Invalid, ImmutableList <IGremlinQueryStrategy> .Empty, ImmutableList <string> .Empty, NullLogger.Instance));
        }
        #pragma warning restore IDE1006 // Naming Styles

        public static IConfigurableGremlinQuerySource Create(string name = "g")
        {
            return(new ConfigurableGremlinQuerySourceImpl(
                       name,
                       GraphModel.Dynamic(NullLogger.Instance),