                     *output_read_coordinates++ = uint16(-1);
                     *output_reference_coordinates++ = reference_offset;
 
-                    update(reference_window_clipped, reference_offset);
-
                     reference_offset++;
                 }
             }
         }
-
-        ctx.cigar.read_window_clipped[read_index] = read_window_clipped;
-        ctx.cigar.read_window_clipped_no_insertions[read_index] = read_window_clipped_no_insertions;
-        ctx.cigar.reference_window_clipped[read_index] = reference_window_clipped;
     }
 };
 

            case cigar_op::OP_I:
                for(uint32 i = 0; i < cigar[c].len; i++)
                {
                    leading_clips = false;

                    *output_read_index++ = read_index;
                    *output_read_coordinates++ = read_offset;
                    *output_reference_coordinates++ = uint16(-1);

                    // update the trailing clipped read region
                    update(read_window_clipped, read_offset);

                    // the no-insertion window never moves with I

                    read_offset++;
                }

                     context->active_read_list.end(),
                     cigar_coordinates_expand(*context, batch.device));

    // initialize read windows
    thrust::for_each(context->active_read_list.begin(),
                     context->active_read_list.end(),
                     read_window_init(*context, batch.device));

    // apply read clips
    // hard-clip the soft clip regions
    thrust::for_each(context->active_read_list.begin(),
                     context->active_read_list.end(),
                     remove_soft_clips(*context, batch.device));

    // compute the no insertions window based on the clipping window
    thrust::for_each(context->active_read_list.begin(),
                     context->active_read_list.end(),
                     compute_no_insertions_window(*context, batch.device));

    // finally, compute the reference window (using the no insertions window)
    thrust::for_each(context->active_read_list.begin(),
                     context->active_read_list.end(),
                     compute_reference_window(*context, batch.device));

    // compute the error bit vectors
    // this also counts the number of errors in each read
    thrust::for_each(context->active_read_list.begin(),
