merged spectral branch into oop