         return retval;
     }
 
-    // Kernel entry point to be loaded in the driver code
+    // The entry point in the driver code to BFS is this Enact call.
     template <typename BFSProblem>
         cudaError_t Enact(
                 CudaContext &context,
                 BFSProblem *problem, // Problem data sent in
                 typename BFSProblem::VertexId src) // Source node ID for BFS
         {
-            // Gunrock provide a recommend setting for running kernel to users
-            // here. This can be changed by users too.
+            // Gunrock provides recommended settings here for kernel
+            // parameters, but they can be changed by end-users.
             typedef gunrock::oprtr::filter::KernelPolicy<
                 BFSProblem,
                 300, //CUDA_ARCH

// Enactor defines the running process of a graph primitive using traversal
// (advance and filter operator) and computation (functors).

class BFSEnactor : public EnactorBase {

    //Constructor, Destructor, and Setup functions are ignored

    template<
    typename AdvancePolicy,

    cudaError_t EnactBFS(CudaContext &context,BFSProblem *problem,VertexId   src)
    {

        typedef BFSFunctor<
        typename BFSProblem::VertexId,
        typename BFSProblem::SizeT,
        typename BFSProblem::VertexId,
        BFSProblem> BfsFunctor;

        // Start with the Setup function to initialize kernel running parameters
        cudaError_t retval = cudaSuccess;
        if (retval = EnactorBase::Setup(problem)) break;

        // Define the graph topology data pointer (g_slice) and
        // the problem-specific data pointer (d_slice)
        typename BFSProblem::GraphSlice *g_slice = problem->d_graph_slices;
        typename BFSProblem::DataSlice *d_slice = problem->d_data_slices;

        // Initialize the queue length (frontier size) to 1.
        SizeT queue_length = 1;
        // We ping-pong between old and new frontiers; "selector"
        // picks which one is the current destination.
        int selector = 0;

        // Here we sequence our operators and functors. For BFS, we
        // alternate between advancing to a new frontier
        // (vertex-to-vertex), calling the BFS functor to set depths
        // along the way, and then filtering out invalid nodes from
        // the new frontier. We repeat until the frontier is empty.
        while (queue_length > 0) {
            gunrock::oprtr::advance::Kernel
                <AdvancePolicy, BFSProblem, BFSFunctor>
