 	VertexId* h_source_path 			= (VertexId*) malloc(sizeof(VertexId) * csr_graph.nodes);
 
 	// Allocate a BFS enactor (with maximum frontier-queue size the size of the edge-list)
-	bfs::EnactorOnePhaseInCore 		one_phase_enactor_ec(g_verbose);
-	bfs::EnactorOnePhase 			one_phase_enactor(g_verbose);
+	bfs::EnactorOnePhaseInCore 		expand_contract_enactor(g_verbose);
+	bfs::EnactorOnePhase 			contract_expand_enactor(g_verbose);
 	bfs::EnactorTwoPhase			two_phase_enactor(g_verbose);
 	bfs::EnactorHybrid 				hybrid_enactor(g_verbose);
 	bfs::EnactorMultiGpu			multi_gpu_enactor(g_verbose);

		}

		if (num_gpus == 1) {
/* bit rot?
			if (!csr_problem.uneven) {
				// Perform one-phase in-core BFS implementation (single grid launch)
				if (TestGpuBfs<INSTRUMENT>(
					one_phase_enactor_ec,
					csr_problem,
					src,
					h_source_path,

				fflush(stdout);
			}

		} else {

			if (!csr_problem.uneven) {
				// Perform multi-GPU out-of-core BFS implementation
				if (TestGpuBfs<INSTRUMENT>(
					multi_gpu_enactor,
					csr_problem,
					src,
					h_source_path,
					(g_quick) ? (VertexId*) NULL : reference_source_dist,
					csr_graph,
					stats[5],
					max_grid_size)) exit(1);
				printf("\n");
				fflush(stdout);
			}
		}

		if (g_verbose2) {
