internal static IFeatureflowClient Create(
            string apiKey,
            IEnumerable <Feature> defaultFeatures,
            FeatureflowConfig featureflowConfig)
        {
            var client = new FeatureflowClient(apiKey, defaultFeatures, featureflowConfig);

            using (var evt = new ManualResetEventSlim(false))
            {
                Task.Run(async() =>
                {
                    try
                    {
                        await client.InitializeAsync(CancellationToken.None).ConfigureAwait(false);
                    }
                    finally
                    {
                        evt.Set();
                    }
                });

                evt.Wait();
            }

            return(client);
        }
        internal static async Task <IFeatureflowClient> CreateAsync(
            string apiKey,
            IEnumerable <Feature> defaultFeatures,
            FeatureflowConfig featureflowConfig,
            CancellationToken cancellationToken)
        {
            var client = new FeatureflowClient(apiKey, defaultFeatures, featureflowConfig);
            await client.InitializeAsync(cancellationToken).ConfigureAwait(false);

            return(client);
        }