public GeneralSearchEThcDEngine(
            IProteinCreator proteinCreator,
            IPeptideCreator peptideCreator,
            IGlycanCreator glycanCreator,
            ISpectrumFactory spectrumFactory,
            ISpectrumProcessing spectrumProcessing,
            IMonoMassSpectrumGetter monoMassSpectrumGetter,
            IPrecursorMatcher precursorMatcher,
            ISpectrumFilter spectrumFilter,
            ISearchEThcD searchEThcDRunner,
            IResults results,
            IReportProducer reportProducer
            )
        {
            // protein
            this.proteinCreator = proteinCreator;

            // peptides
            this.peptideCreator = peptideCreator;

            // glycans
            this.glycanCreator = glycanCreator;

            // spectrum
            this.spectrumFactory = spectrumFactory;

            // spectrum processing
            this.spectrumProcessing     = spectrumProcessing;
            this.monoMassSpectrumGetter = monoMassSpectrumGetter;

            // glycopeptides
            this.precursorMatcher = precursorMatcher;
            this.spectrumFilter   = spectrumFilter;

            // search
            this.searchEThcDRunner = searchEThcDRunner;

            // result
            this.results        = results;
            this.reportProducer = reportProducer;
        }