finish fft implementation