changed fft implementation