added fourier transform stuff