public GeneratieInterface(ILiturgieSlideMaker liturgieSlideMaker, IInstellingenFactory instellingenOplosser, ILiturgieTekstNaarObject liturgieTekstNaarObject, Func <IBuilder> builderResolver, ICompRegistration newCompRegistration)
 {
     _liturgieSlideMaker      = liturgieSlideMaker;
     _liturgieTekstNaarObject = liturgieTekstNaarObject;
     _instellingenFactory     = instellingenOplosser;
     _builderResolver         = builderResolver;
     _powerpoint  = new PpGenerator(_builderResolver, PresentatieVoortgangCallback, PresentatieGereedmeldingCallback);
     Registration = newCompRegistration as T;
 }
        private bool disposedValue = false; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    // dispose managed state (managed objects).
                    if (_powerpoint != null)
                    {
                        _powerpoint.Dispose();
                    }
                    _powerpoint = null;
                }

                // free unmanaged resources (unmanaged objects) and override a finalizer below.
                // set large fields to null.

                disposedValue = true;
            }
        }