                                  OutType*   d_out,
                                  cudaStream_t stream=0) {
     //cout << "LAUNCH for " << nelement << endl;
+    // TODO: Is this really the best setup to use?
     dim3 block(8,1);
     dim3 grid(nbatch,1);
     /*

    BF_ASSERT( in->shape[2] == plan->npol(),      BF_STATUS_INVALID_SHAPE);
    BF_ASSERT( in->shape[3] == plan->nbaseline(), BF_STATUS_INVALID_SHAPE);
    
//     BFarray out_flattened;
//     if( out->ndim > 5 ) {
//         // Keep the last four dim but attempt to flatten all others

    BF_ASSERT( in->ndim == 4,          BF_STATUS_INVALID_SHAPE);
    BF_ASSERT(out->ndim == in->ndim+1, BF_STATUS_INVALID_SHAPE);
    
//     TODO: What all should we support here?
//     BFarray in_flattened;
//     if( in->ndim > 4 ) {
//         // Keep the last three dim but attempt to flatten all others
