added spectral integration