public void Build()
        {
            _internalStartup.AddServices(_serviceContainer);

            if (_startupInstance != null)
            {
                // Startup is already built
                _serviceContainer.AddTransient(factory => _startupInstance);
                appStartup = _startupInstance;
            }
            else
            {
                _serviceContainer.AddTransient <TStartup>();

                var temporaryFactory = GetFactory();

                appStartup = temporaryFactory.Get <TStartup>();
            }

            appStartup.AddServices(_serviceContainer);
        }