                 //v:pre, u:neighbor, outoffset:offset+i
                 if (Functor::CondEdge(v, u, problem, lookup)) {
                     Functor::ApplyEdge(v, u, problem, lookup);
-                    util::io::ModifiedStore<ProblemData::QUEUE_WRITE_MODIFIER>::St(
-                            u,
-                            d_out + offset+i);
+                    if (ADVANCE_TYPE == gunrock::oprtr::advance::V2V) {
+                        util::io::ModifiedStore<ProblemData::QUEUE_WRITE_MODIFIER>::St(
+                                u,
+                                d_out + offset+i); 
+                    } else if (ADVANCE_TYPE == gunrock::oprtr::advance::V2E) {
+                        util::io::ModifiedStore<ProblemData::QUEUE_WRITE_MODIFIER>::St(
+                                (VertexId)lookup,
+                                d_out + offset+i);
+                    }
                 }
                 else {
                     util::io::ModifiedStore<ProblemData::QUEUE_WRITE_MODIFIER>::St(

            if (!ProblemData::MARK_PREDECESSORS) {
                if (Functor::CondEdge(label, u, problem, lookup)) {
                    Functor::ApplyEdge(label, u, problem, lookup);
                    util::io::ModifiedStore<ProblemData::QUEUE_WRITE_MODIFIER>::St(
                            u,
                            d_out + offset+i);
                }
                else {
                    util::io::ModifiedStore<ProblemData::QUEUE_WRITE_MODIFIER>::St(

                    } else {
                        if (Functor::CondEdge(v, u, problem, lookup)) {
                            Functor::ApplyEdge(v, u, problem, lookup);
                            if (ADVANCE_TYPE == gunrock::oprtr::advance::V2V) {
                                util::io::ModifiedStore<ProblemData::QUEUE_WRITE_MODIFIER>::St(
                                        u,
                                        d_out + out_index); 
                            } else if (ADVANCE_TYPE == gunrock::oprtr::advance::V2E) {
                                util::io::ModifiedStore<ProblemData::QUEUE_WRITE_MODIFIER>::St(
                                        (VertexId)lookup,
                                        d_out + out_index);
                            }
                        }
                        else {
                            util::io::ModifiedStore<ProblemData::QUEUE_WRITE_MODIFIER>::St(
