 
 	cufftHandle cufft_plan2d;
 
-	cufftPlan2d(&cufft_plan2d, sig_len, sig_len, CUFFT_C2C);
+	// ToDo: 2d plan cufftPlan2d()
+	// http://docs.nvidia.com/cuda/cufft/index.html#function-cufftplan2d
+
+
 
 	//------------------------------------------------------------------------//
 	// gpu timer 

		cudaEventRecord(start, 0);

		for (int j = 0; j < fft_run; j++) {
			cufftExecC2C(cufft_plan2d, d_sig, d_result, CUFFT_FORWARD);
		}

		cudaEventRecord(stop, 0);

	// device memory
	//------------------------------------------------------------------------//
	cufftComplex *d_sig, *d_result;
	// ToDo : allocate 2d space
	cudaMalloc((void **) &d_sig,    );
	cudaMalloc((void **) &d_result, );

	//------------------------------------------------------------------------//
	// copy data from host to device 
	//------------------------------------------------------------------------//
	// ToDo: copy data
	cudaMemcpyAsync(d_sig, h_sig, , );

	//------------------------------------------------------------------------//
	// set up cuda fft env 
