 
     // Next, add each edge into the correct corresponding queue
     for (auto i = 0; i < MAX_ADJ_UNIONS_BINS; i++)
-        hd_queue_info().queues[i].initialize((size_t)10000000);
+        hd_queue_info().queues[i].initialize((size_t)100000000);
         //hd_queue_info().queues[i].initialize((size_t)hd_queue_info().queue_sizes[i]*2+2);
-    TM.start();
+    //TM.start();
     forAllEdgesSrcDst(hornet, bin_edges {hd_queue_info, false}, load_balancing);
-    TM.stop();
-    TM.print("adding to queues");
-    TM.reset();
+    //TM.stop();
+    //TM.print("adding to queues");
+    //TM.reset();
 
     // Phase 2: run the operator on each queued edge as appropriate
     for (auto bin = 0; bin < MAX_ADJ_UNIONS_BINS; bin++) {

            }
        }
        
        if ((diag_id < total_work-1) && (diag_id+work_per_thread >= total_work-1)) {
            vi_end = v_len - 1;
            ui_end = u_len - 1;
            printf("u=%d, v=%d intersect, diag_id %d: (%d, %d) -> (%d, %d))\n", 
                    u, v, diag_id, vi_begin, ui_begin, vi_end, ui_end); 
        } else if (diag_id < total_work - 1) {
            vi_end = pathPoints[(block_local_id+1)*2];
            ui_end = pathPoints[(block_local_id+1)*2+1];
            printf("u=%d, v=%d intersect, diag_id %d: (%d, %d) -> (%d, %d))\n", 
                    u, v, diag_id, vi_begin, ui_begin, vi_end, ui_end); 
        }
        if (diag_id < total_work-1) {
            op(u_vtx, v_vtx, u_nodes+ui_begin, u_nodes+ui_end, v_nodes+vi_begin, v_nodes+vi_end, flag);
        }
    }

        if (hd_queue_info().queue_sizes[bin] == 0) continue;
        if (false) { // bin == 0
            threads_per = 1;
            //TM.start();
            // forAllEdgesAdjUnionSequential(hornet, hd_queue_info().queues[bin], op, flag);
            //TM.stop();
            //TM.print("running next bin");
            //TM.reset();
        } else if (bin == 1) {
            threads_per = 8;
            forAllEdgesAdjUnionBalanced(hornet, hd_queue_info().queues[bin], op, threads_per, flag);
        } else if (bin == 2) {
            // Imbalance case, flag = 1
