/// <summary>
        /// Updates references for common parameters
        /// </summary>
        //public virtual void refreshReferences() {
        //ISpectrum topSpectrum = Spectra[0];
        //for (int groupId = 0; groupId < topSpectrum.Parameters.GroupCount; groupId++) {
        //    if (topSpectrum.Parameters[groupId] is ContributedGroup) {
        //        IParameter topContribution = ((ContributedGroup)topSpectrum.Parameters[groupId]).contribution;
        //        foreach (ISpectrum spectrum in Spectra) {
        //            if (spectrum == topSpectrum) {
        //                topContribution.ReferencedParameter = null;
        //            } else {
        //                IParameter contribution = ((ContributedGroup)spectrum.Parameters[groupId]).contribution;
        //                if ((contribution.Status & ParameterStatus.Common) == ParameterStatus.Common)
        //                    contribution.ReferencedParameter = topContribution;
        //            }

        //        }
        //    }
        //    for (int componentId = 0; componentId < topSpectrum.Parameters[groupId].Components.Size; componentId++) {
        //        for (int parameterId = 0; parameterId < topSpectrum.Parameters[groupId].Components[componentId].Size; parameterId++) {
        //            IParameter topParameter = topSpectrum.Parameters[groupId].Components[componentId][parameterId];
        //            foreach (ISpectrum spectrum in Spectra) {

        //                if (spectrum == topSpectrum) {
        //                    topParameter.ReferencedParameter = null;
        //                } else {
        //                    IParameter parameter = spectrum.Parameters[groupId].Components[componentId][parameterId];
        //                    if ((parameter.Status & ParameterStatus.Common) == ParameterStatus.Common)
        //                        parameter.ReferencedParameter = topParameter;
        //                }

        //            }
        //        }
        //    }
        //}
        //}

        public virtual void RemoveSpectrum(ISpectrum spectrum)
        {
            Spectra.Remove(spectrum);
            spectrum.Dispose();
            //refreshReferences();
        }