You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/02/17 16:52:23 UTC

[2/2] incubator-tinkerpop git commit: GraphComputer and TraveraslEngine play off each other more naturally now.

GraphComputer and TraveraslEngine play off each other more naturally now.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/4d23094d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/4d23094d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/4d23094d

Branch: refs/heads/master
Commit: 4d23094de0437a0d05e691232e5983530badfff3
Parents: 8df662d
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Feb 17 08:52:23 2015 -0700
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Feb 17 08:52:23 2015 -0700

----------------------------------------------------------------------
 .../gremlin/process/TraversalEngine.java        |  4 +-
 .../traversal/step/map/ComputerResultStep.java  |  2 +-
 .../computer/util/GraphComputerHelper.java      |  5 ---
 .../process/traversal/DefaultTraversal.java     |  8 ++--
 .../engine/ComputerTraversalEngine.java         | 17 ++++---
 .../engine/StandardTraversalEngine.java         | 10 ++---
 .../lambda/AbstractLambdaTraversal.java         |  2 +-
 .../process/traversal/util/EmptyTraversal.java  |  2 +-
 .../tinkerpop/gremlin/structure/Graph.java      | 18 +++++---
 .../structure/strategy/StrategyGraph.java       | 11 +++--
 .../structure/util/batch/BatchGraph.java        | 13 ++++--
 .../structure/util/empty/EmptyGraph.java        | 11 +++--
 .../step/branch/GroovyUnionTest.groovy          |  2 +-
 .../step/filter/GroovyDedupTest.groovy          |  6 +--
 .../step/filter/GroovyRangeTest.groovy          | 18 ++++----
 .../step/filter/GroovySampleTest.groovy         |  4 +-
 .../step/filter/GroovyWhereTest.groovy          |  4 +-
 .../traversal/step/map/GroovyCountTest.groovy   |  2 +-
 .../traversal/step/map/GroovyFoldTest.groovy    |  2 +-
 .../traversal/step/map/GroovyMapTest.groovy     |  4 +-
 .../traversal/step/map/GroovyOrderTest.groovy   | 10 ++---
 .../traversal/step/map/GroovySelectTest.groovy  | 12 ++---
 .../step/sideEffect/GroovyInjectTest.groovy     |  4 +-
 .../AbstractImportCustomizerProvider.java       |  3 ++
 .../groovy/engine/GroovyTraversalScript.java    |  2 +-
 .../tinkerpop/gremlin/AbstractGremlinTest.java  |  4 +-
 .../apache/tinkerpop/gremlin/GraphProvider.java |  2 +-
 .../process/computer/GraphComputerTest.java     | 13 ------
 .../ranking/PageRankVertexProgramTest.java      |  2 +-
 .../graph/traversal/step/branch/UnionTest.java  |  2 +-
 .../graph/traversal/step/filter/DedupTest.java  |  6 +--
 .../graph/traversal/step/filter/ExceptTest.java | 10 ++---
 .../graph/traversal/step/filter/FilterTest.java | 16 +++----
 .../graph/traversal/step/filter/RangeTest.java  | 18 ++++----
 .../graph/traversal/step/filter/RetainTest.java |  2 +-
 .../graph/traversal/step/filter/SampleTest.java | 16 ++-----
 .../graph/traversal/step/filter/WhereTest.java  |  2 +-
 .../graph/traversal/step/map/CountTest.java     |  2 +-
 .../graph/traversal/step/map/FoldTest.java      |  2 +-
 .../graph/traversal/step/map/MapTest.java       | 11 +++--
 .../graph/traversal/step/map/OrderTest.java     | 14 +++---
 .../graph/traversal/step/map/SelectTest.java    | 14 +++---
 .../graph/traversal/step/map/UnfoldTest.java    |  2 +-
 .../traversal/step/sideEffect/InjectTest.java   |  4 +-
 .../traversal/step/sideEffect/SackTest.java     |  2 +-
 .../gremlin/hadoop/structure/HadoopGraph.java   | 18 ++++----
 .../gremlin/neo4j/structure/Neo4jGraph.java     | 10 ++++-
 .../tinkergraph/structure/TinkerGraph.java      | 18 ++++----
 .../structure/GroovyTinkerGraphTest.groovy      | 47 --------------------
 .../tinkergraph/structure/TinkerGraphTest.java  |  2 +-
 50 files changed, 181 insertions(+), 234 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
index c7b84b0..bfa9e5d 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/TraversalEngine.java
@@ -33,8 +33,6 @@ public interface TraversalEngine extends Serializable {
 
     public Type getType();
 
-    public void setGraph(final Graph graph);
-
     public default boolean isStandard() {
         return this.getType().equals(Type.STANDARD);
     }
@@ -42,4 +40,6 @@ public interface TraversalEngine extends Serializable {
     public default boolean isComputer() {
         return this.getType().equals(Type.COMPUTER);
     }
+
+    public TraversalEngine create(final Graph graph);
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/step/map/ComputerResultStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/step/map/ComputerResultStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/step/map/ComputerResultStep.java
index e94822a..9ab2208 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/step/map/ComputerResultStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/step/map/ComputerResultStep.java
@@ -90,7 +90,7 @@ public final class ComputerResultStep<S> extends AbstractStep<S, S> {
 
     public void populateTraversers(final ComputerResult result) {
         this.graph = result.graph();
-        this.graph.engine(StandardTraversalEngine.instance());
+        this.graph.engine(StandardTraversalEngine.standard);
         result.memory().keys().forEach(key -> this.getTraversal().getSideEffects().set(key, result.memory().get(key)));
         final Step endStep = this.getPreviousStep();
         if (endStep instanceof SideEffectCapStep) {

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/GraphComputerHelper.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/GraphComputerHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/GraphComputerHelper.java
index f920799..73f49c9 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/GraphComputerHelper.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/util/GraphComputerHelper.java
@@ -62,11 +62,6 @@ public final class GraphComputerHelper {
         }
     }
 
-    public static void validateComputeArguments(Class... graphComputerClass) {
-        if (graphComputerClass.length > 1)
-            throw Graph.Exceptions.onlyOneOrNoGraphComputerClass();
-    }
-
     public static boolean areEqual(final MapReduce a, final Object b) {
         if (null == a)
             throw Graph.Exceptions.argumentCanNotBeNull("a");

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/DefaultTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/DefaultTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/DefaultTraversal.java
index 75872ec..451c473 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/DefaultTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/DefaultTraversal.java
@@ -58,11 +58,11 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
     public DefaultTraversal(final Object emanatingObject) {
         this.setStrategies(TraversalStrategies.GlobalCache.getStrategies(emanatingObject.getClass()));
         if (emanatingObject instanceof Graph)
-            this.traversalEngine = ((Graph) emanatingObject).engine();
+            this.traversalEngine = ((Graph) emanatingObject).engine().create((Graph) emanatingObject);
         else if (emanatingObject instanceof Element)
-            this.traversalEngine = ((Element) emanatingObject).graph().engine();
+            this.traversalEngine = ((Element) emanatingObject).graph().engine().create(((Element) emanatingObject).graph());
         else
-            this.traversalEngine = StandardTraversalEngine.instance();
+            this.traversalEngine = StandardTraversalEngine.standard;
     }
 
     @Override
@@ -84,7 +84,7 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
                 }
                 for (final Traversal.Admin<?, ?> localChild : ((TraversalParent) step).getLocalChildren()) {
                     localChild.setStrategies(this.strategies);
-                    localChild.setEngine(StandardTraversalEngine.instance());
+                    localChild.setEngine(StandardTraversalEngine.standard);
                     localChild.applyStrategies();
                 }
             }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
index e3974b5..5ed89f1 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/ComputerTraversalEngine.java
@@ -23,16 +23,19 @@ import org.apache.tinkerpop.gremlin.process.TraversalEngine;
 import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ComputerResultStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.EmptyStep;
 import org.apache.tinkerpop.gremlin.structure.Graph;
+import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
 public final class ComputerTraversalEngine implements TraversalEngine {
 
-    private transient Graph graph;
+    public static final ComputerTraversalEngine computer = new ComputerTraversalEngine(EmptyGraph.instance());
 
-    private ComputerTraversalEngine() {
+    private final transient Graph graph;
 
+    private ComputerTraversalEngine(final Graph graph) {
+        this.graph = graph;
     }
 
     @Override
@@ -42,16 +45,12 @@ public final class ComputerTraversalEngine implements TraversalEngine {
     }
 
     @Override
-    public void setGraph(final Graph graph) {
-        this.graph = graph;
-    }
-
-    @Override
     public Type getType() {
         return Type.COMPUTER;
     }
 
-    public static ComputerTraversalEngine instance() {
-        return new ComputerTraversalEngine();
+    @Override
+    public ComputerTraversalEngine create(final Graph graph) {
+        return new ComputerTraversalEngine(graph);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
index 4594ded..0f9d968 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/engine/StandardTraversalEngine.java
@@ -27,7 +27,7 @@ import org.apache.tinkerpop.gremlin.structure.Graph;
  */
 public final class StandardTraversalEngine implements TraversalEngine {
 
-    private static StandardTraversalEngine INSTANCE = new StandardTraversalEngine();
+    public static final StandardTraversalEngine standard = new StandardTraversalEngine();
 
     private StandardTraversalEngine() {
 
@@ -44,11 +44,7 @@ public final class StandardTraversalEngine implements TraversalEngine {
     }
 
     @Override
-    public void setGraph(final Graph graph) {
-
-    }
-
-    public static StandardTraversalEngine instance() {
-        return INSTANCE;
+    public StandardTraversalEngine create(final Graph graph) {
+        return standard;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
index 186a19b..63bd910 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
@@ -67,7 +67,7 @@ public abstract class AbstractLambdaTraversal<S, E> implements Traversal.Admin<S
 
     @Override
     public TraversalEngine getEngine() {
-        return StandardTraversalEngine.instance();
+        return StandardTraversalEngine.standard;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java
index f78a8b6..988b7a9 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java
@@ -82,7 +82,7 @@ public class EmptyTraversal<S, E> implements Traversal.Admin<S, E> {
 
     @Override
     public TraversalEngine getEngine() {
-        return StandardTraversalEngine.instance();
+        return StandardTraversalEngine.standard;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
index 16f5e36..0d516ee 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java
@@ -170,14 +170,22 @@ public interface Graph extends AutoCloseable {
     }
 
     /**
+     * Declare the {@link GraphComputer} to use for OLAP operations on the graph.
+     * If the graph does not support graph computer then an {@link java.lang.UnsupportedOperationException} is thrown.
+     *
+     * @param graphComputerClass The graph computer class to use.
+     * @throws IllegalArgumentException if the provided {@link GraphComputer} class is not supported.
+     */
+    public void compute(final Class<? extends GraphComputer> graphComputerClass) throws IllegalArgumentException;
+
+    /**
      * Create an OLAP {@link GraphComputer} to execute a vertex program over this graph.
+     * The {@link GraphComputer} to use is declared by {@link Graph#compute(Class)}.
      * If the graph does not support graph computer then an {@link java.lang.UnsupportedOperationException} is thrown.
-     * The provided arguments can be of either length 0 or 1. A graph can support multiple graph computers.
      *
-     * @param graphComputerClass The graph computer class to use (if no argument, then a default is selected by the graph)
      * @return A graph computer for processing this graph
      */
-    public GraphComputer compute(final Class... graphComputerClass);
+    public GraphComputer compute();
 
     /**
      * Get the declared {@link TraversalEngine} used by all {@link Traversal}s spawned from the graph or its elements.
@@ -193,10 +201,6 @@ public interface Graph extends AutoCloseable {
      */
     public void engine(final TraversalEngine traversalEngine);
 
-    /* TODO ?? public default void standard() {
-        this.engine(StandardTraversalEngine.instance());
-    }*/
-
     /**
      * Configure and control the transactions for those graphs that support this feature.
      */

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/strategy/StrategyGraph.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/strategy/StrategyGraph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/strategy/StrategyGraph.java
index 726e4fb..f49f36a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/strategy/StrategyGraph.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/strategy/StrategyGraph.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.structure.strategy;
 
+import org.apache.commons.configuration.Configuration;
 import org.apache.tinkerpop.gremlin.process.Traversal;
 import org.apache.tinkerpop.gremlin.process.TraversalEngine;
 import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
@@ -29,7 +30,6 @@ import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 import org.apache.tinkerpop.gremlin.structure.util.wrapped.WrappedGraph;
 import org.apache.tinkerpop.gremlin.util.function.FunctionUtils;
-import org.apache.commons.configuration.Configuration;
 
 import java.util.Iterator;
 import java.util.Optional;
@@ -124,8 +124,13 @@ public class StrategyGraph implements Graph, Graph.Iterators, StrategyWrapped, W
     }
 
     @Override
-    public GraphComputer compute(final Class... graphComputerClass) {
-        return this.baseGraph.compute(graphComputerClass);
+    public void compute(final Class<? extends GraphComputer> graphComputerClass) {
+        this.baseGraph.compute(graphComputerClass);
+    }
+
+    @Override
+    public GraphComputer compute() {
+        return this.baseGraph.compute();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/batch/BatchGraph.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/batch/BatchGraph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/batch/BatchGraph.java
index 017d29d..c17699b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/batch/BatchGraph.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/batch/BatchGraph.java
@@ -18,6 +18,8 @@
  */
 package org.apache.tinkerpop.gremlin.structure.util.batch;
 
+import org.apache.commons.configuration.BaseConfiguration;
+import org.apache.commons.configuration.Configuration;
 import org.apache.tinkerpop.gremlin.process.T;
 import org.apache.tinkerpop.gremlin.process.Traversal;
 import org.apache.tinkerpop.gremlin.process.TraversalEngine;
@@ -36,8 +38,6 @@ import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.ElementHelper;
 import org.apache.tinkerpop.gremlin.structure.util.batch.cache.VertexCache;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
-import org.apache.commons.configuration.BaseConfiguration;
-import org.apache.commons.configuration.Configuration;
 
 import java.util.Collections;
 import java.util.Iterator;
@@ -251,13 +251,18 @@ public class BatchGraph<G extends Graph> implements Graph, Graph.Iterators {
     }
 
     @Override
-    public GraphComputer compute(final Class... graphComputerClass) {
+    public void compute(final Class<? extends GraphComputer> graphComputerClass) {
+        throw Exceptions.graphComputerNotSupported();
+    }
+
+    @Override
+    public GraphComputer compute() {
         throw Exceptions.graphComputerNotSupported();
     }
 
     @Override
     public TraversalEngine engine() {
-        return StandardTraversalEngine.instance();
+        return StandardTraversalEngine.standard;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java
index d3ac960..0ae6e97 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.structure.util.empty;
 
+import org.apache.commons.configuration.Configuration;
 import org.apache.tinkerpop.gremlin.process.Traversal;
 import org.apache.tinkerpop.gremlin.process.TraversalEngine;
 import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
@@ -29,7 +30,6 @@ import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Transaction;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.apache.commons.configuration.Configuration;
 
 import java.util.Collections;
 import java.util.Iterator;
@@ -71,13 +71,18 @@ public final class EmptyGraph implements Graph, Graph.Iterators {
     }
 
     @Override
-    public GraphComputer compute(final Class... graphComputerClass) {
+    public void compute(final Class<? extends GraphComputer> graphComputerClass) {
+
+    }
+
+    @Override
+    public GraphComputer compute() {
         throw new IllegalStateException(MESSAGE);
     }
 
     @Override
     public TraversalEngine engine() {
-       return StandardTraversalEngine.instance();
+        return StandardTraversalEngine.standard;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/GroovyUnionTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/GroovyUnionTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/GroovyUnionTest.groovy
index b746163..286ee16 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/GroovyUnionTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/GroovyUnionTest.groovy
@@ -101,7 +101,7 @@ public abstract class GroovyUnionTest {
         @Override
         public Traversal<Vertex, Number> get_g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX(
                 final Object v1Id, final Object v2Id) {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V(v1Id, v2Id).union(outE().count, inE().count, outE().weight.sum);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyDedupTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyDedupTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyDedupTest.groovy
index a756cc8..08afc2b 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyDedupTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyDedupTest.groovy
@@ -59,21 +59,21 @@ public abstract class GroovyDedupTest {
     public static class ComputerTest extends DedupTest {
         @Override
         public Traversal<Vertex, String> get_g_V_both_dedup_name() {
-            g.engine(StandardTraversalEngine.instance()) // TODO
+            g.engine(StandardTraversalEngine.standard) // TODO
             g.V.both.dedup.name
             //ComputerTestHelper.compute("g.V.both.dedup.name", g);
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_both_hasXlabel_softwareX_dedup_byXlangX_name() {
-            g.engine(StandardTraversalEngine.instance()) // TODO
+            g.engine(StandardTraversalEngine.standard) // TODO
             g.V.both.has(T.label, 'software').dedup.by('lang').name
             //ComputerTestHelper.compute("g.V.both.has(T.label,'software').dedup.by('lang').name", g);
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_both_propertiesXnameX_orderXa_bX_dedup_value() {
-            g.engine(StandardTraversalEngine.instance()) // TODO
+            g.engine(StandardTraversalEngine.standard) // TODO
             g.V().both().properties('name').order.by { a, b -> a.value() <=> b.value() }.dedup.value
             //ComputerTestHelper.compute("g.V.both.properties('name').order.by { a, b -> a.value() <=> b.value() }.dedup.value", g);
         }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyRangeTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyRangeTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyRangeTest.groovy
index 4067f06..b5d3152 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyRangeTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyRangeTest.groovy
@@ -81,56 +81,56 @@ public abstract class GroovyRangeTest {
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_out_limitX2X(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()) // TODO
+            g.engine(StandardTraversalEngine.standard) // TODO
             g.V(v1Id).out.limit(2)
             //ComputerTestHelper.compute("g.V(v1Id).out.limit(2)", g)
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_localXoutE_limitX1X_inVX_limitX3X() {
-            g.engine(StandardTraversalEngine.instance()) // TODO
+            g.engine(StandardTraversalEngine.standard) // TODO
             g.V.local(__.outE.limit(3)).inV.limit(3)
             //ComputerTestHelper.compute("g.V.local(__.outE.limit(3)).inV.limit(3)", g)
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_outXknowsX_outEXcreatedX_rangeX0_1X_inV(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()) // TODO
+            g.engine(StandardTraversalEngine.standard) // TODO
             g.V(v1Id).out('knows').outE('created')[0].inV()
             //ComputerTestHelper.compute("g.V(v1Id).out('knows').outE('created')[0].inV()", g)
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_outXknowsX_outXcreatedX_rangeX0_1X(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()) // TODO
+            g.engine(StandardTraversalEngine.standard) // TODO
             g.V(v1Id).out('knows').out('created')[0]
             //ComputerTestHelper.compute("g.V(v1Id).out('knows').out('created')[0]", g)
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_outXcreatedX_inXcreatedX_rangeX1_3X(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()) // TODO
+            g.engine(StandardTraversalEngine.standard) // TODO
             g.V(v1Id).out('created').in('created')[1..3]
             //ComputerTestHelper.compute("g.V(v1Id).out('created').in('created')[1..3]", g)
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_outXcreatedX_inEXcreatedX_rangeX1_3X_outV(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()) // TODO
+            g.engine(StandardTraversalEngine.standard) // TODO
             g.V(v1Id).out('created').inE('created')[1..3].outV
             //ComputerTestHelper.compute("g.V(v1Id).out('created').inE('created')[1..3].outV", g)
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_repeatXbothX_timesX3X_rangeX5_11X() {
-            g.engine(StandardTraversalEngine.instance()) // TODO
+            g.engine(StandardTraversalEngine.standard) // TODO
             g.V().repeat(__.both).times(3)[5..11]
             //ComputerTestHelper.compute("g.V().repeat(__.both).times(3)[5..11]", g)
         }
 
         @Override
         Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXsoftwareX_asXsX_localXinEXcreatedX_valuesXweightX_fold_limitXlocal_1XX_asXwX_select_byXnameX_by() {
-            g.engine(StandardTraversalEngine.instance())
+            g.engine(StandardTraversalEngine.standard)
             // TODO: the traversal should work in computer mode, but throws a ClassCastException
             g.V().hasLabel('software').as('s').local(__.inE('created').values('weight').fold().limit(Scope.local, 1)).as('w').select().by('name').by()
             //ComputerTestHelper.compute("g.V().hasLabel('software').as('s').local(__.inE('created').values('weight').fold().limit(Scope.local, 1)).as('p').select().by('name').by()", g)
@@ -138,7 +138,7 @@ public abstract class GroovyRangeTest {
 
         @Override
         Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXsoftwareX_asXsX_localXinEXcreatedX_valuesXweightX_fold_rangeXlocal_1_3XX_asXwX_select_byXnameX_by() {
-            g.engine(StandardTraversalEngine.instance())
+            g.engine(StandardTraversalEngine.standard)
             // TODO: the traversal should work in computer mode, but throws a ClassCastException
             g.V().hasLabel('software').as('s').local(__.inE('created').values('weight').fold().range(Scope.local, 1, 3)).as('w').select().by('name').by()
             //ComputerTestHelper.compute("g.V().hasLabel('software').as('s').local(__.inE('created').values('weight').fold().range(Scope.local, 1, 3)).as('p').select().by('name').by()", g)

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovySampleTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovySampleTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovySampleTest.groovy
index 6f829f0..86490d9 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovySampleTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovySampleTest.groovy
@@ -67,13 +67,13 @@ public abstract class GroovySampleTest {
 
         @Override
         public Traversal<Edge, Edge> get_g_E_sampleX1X() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.E.sample(1) // TODO: makes no sense when its global
         }
 
         @Override
         public Traversal<Edge, Edge> get_g_E_sampleX2X_byXweightX() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.E.sample(2).by('weight') // TODO: makes no sense when its global
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyWhereTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyWhereTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyWhereTest.groovy
index 3b304cf..f3c7dab 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyWhereTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/GroovyWhereTest.groovy
@@ -68,14 +68,14 @@ public abstract class GroovyWhereTest {
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_select_whereXb_hasXname_markoXX() {
             // TODO: ComputerTestHelper.compute("g.V.has('age').as('a').out.in.has('age').as('b').select().where(__.as('b').has('name', 'marko'))", g);
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.has('age').as('a').out.in.has('age').as('b').select().where(__.as('b').has('name', 'marko'));
         }
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_select_whereXa_outXknowsX_bX() {
             // TODO: ComputerTestHelper.compute("g.V().has('age').as('a').out.in.has('age').as('b').select().where(__.as('a').out('knows').as('b'))", g);
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V().has('age').as('a').out.in.has('age').as('b').select().where(__.as('a').out('knows').as('b'));
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyCountTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyCountTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyCountTest.groovy
index b404da1..7b54bc9 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyCountTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyCountTest.groovy
@@ -100,7 +100,7 @@ public abstract class GroovyCountTest {
 
         @Override
         public Traversal<Vertex, Long> get_g_V_fold_countXlocalX() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.fold.count(Scope.local);   // TODO: fold
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyFoldTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyFoldTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyFoldTest.groovy
index a62cecf..6ce11ac 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyFoldTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyFoldTest.groovy
@@ -54,7 +54,7 @@ public abstract class GroovyFoldTest {
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_fold_unfold() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.fold.unfold    // Does not work in OLAP cause fold() is not an endstep.
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyMapTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyMapTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyMapTest.groovy
index 0bd6f44..4c7f4cd 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyMapTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyMapTest.groovy
@@ -77,14 +77,14 @@ public abstract class GroovyMapTest {
         @Override
         public Traversal<Vertex, String> get_g_V_asXaX_out_mapXa_nameX() {
             // TODO: Doesn't work for graph computer because sideEffects are not accessible
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.as('a').out.map { v -> v.path('a').name };
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_asXaX_out_out_mapXa_name_it_nameX() {
             // TODO: Doesn't work for graph computer because sideEffects are not accessible
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V().as('a').out.out().map { v -> v.path('a').name + v.name };
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyOrderTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyOrderTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyOrderTest.groovy
index 1dce6d9..5f793d4 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyOrderTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovyOrderTest.groovy
@@ -102,25 +102,25 @@ public abstract class GroovyOrderTest {
 
         @Override
         public Traversal<Vertex, String> get_g_V_order_byXname_incrX_name() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.order.by('name', Order.incr).name
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_order_byXnameX_name() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.order.by('name', Order.incr).name
         }
 
         @Override
         public Traversal<Vertex, Double> get_g_V_outE_order_byXweight_decrX_weight() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.outE.order.by('weight', Order.decr).weight
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_order_byXname_a1_b1X_byXname_b2_a2X_name() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
              g.V.order.by('name') { a, b -> a[1].compareTo(b[1]) }.by('name') { a, b -> b[2].compareTo(a[2]) }.name;
         }
 
@@ -146,7 +146,7 @@ public abstract class GroovyOrderTest {
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_order_byXoutE_count__decrX() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.order.by(__.outE.count, Order.decr)
             // TODO ComputerTestHelper.compute("g.V.order.by(__.outE.count, Order.decr)", g)
         }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovySelectTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovySelectTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovySelectTest.groovy
index 1fcf6db..319bca7 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovySelectTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/GroovySelectTest.groovy
@@ -91,7 +91,7 @@ public abstract class GroovySelectTest {
         @Override
         public Traversal<Vertex, Map<String, String>> get_g_VX1X_asXaX_outXknowsX_asXbX_select_byXnameX(
                 final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V(v1Id).as('a').out('knows').as('b').select.by('name')
             // TODO
         }
@@ -104,32 +104,32 @@ public abstract class GroovySelectTest {
         @Override
         public Traversal<Vertex, String> get_g_VX1X_asXaX_outXknowsX_asXbX_selectXaX_byXnameX(
                 final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V(v1Id).as('a').out('knows').as('b').select('a').by('name')
             //TODO
         }
 
         @Override
         public Traversal<Vertex, Map<String, String>> get_g_V_asXaX_out_asXbX_select_byXnameX() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.as('a').out.as('b').select.by('name') // TODO computer
         }
 
         @Override
         public Traversal<Vertex, Map<String, String>> get_g_V_asXaX_out_aggregate_asXbX_select_byXnameX() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.as('a').out.aggregate.as('b').select.by('name') // TODO computer
         }
 
         @Override
         public Traversal<Vertex, Map<String, String>> get_g_V_asXaX_name_order_asXbX_select_byXnameX_by() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V().as('a').name.order().as('b').select.by('name').by // TODO: computer
         }
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_hasXname_gremlinX_inEXusesX_order_byXskill_incrX_asXaX_outV_asXbX_select_byXskillX_byXnameX() {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V.has('name', 'gremlin').inE('uses').order.by('skill', Order.incr).as('a').outV.as('b').select.by('skill').by('name')
             // TODO: computer
         }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/GroovyInjectTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/GroovyInjectTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/GroovyInjectTest.groovy
index c197c06..1f0e1d1 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/GroovyInjectTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/GroovyInjectTest.groovy
@@ -44,13 +44,13 @@ public abstract class GroovyInjectTest {
     public static class ComputerTest extends InjectTest {
         @Override
         public Traversal<Vertex, String> get_g_VX1X_out_injectXv2X_name(final Object v1Id, final Object v2Id) {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V(v1Id).out.inject(g.V(v2Id).next()).name
         }
 
         @Override
         public Traversal<Vertex, Path> get_g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             g.V(v1Id).out().name.inject('daniel').as('a').map { it.length() }.path
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/AbstractImportCustomizerProvider.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/AbstractImportCustomizerProvider.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/AbstractImportCustomizerProvider.java
index 5015baa..fc133e3 100644
--- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/AbstractImportCustomizerProvider.java
+++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/AbstractImportCustomizerProvider.java
@@ -36,6 +36,7 @@ import org.apache.tinkerpop.gremlin.process.graph.traversal.GraphTraversal;
 import org.apache.tinkerpop.gremlin.process.graph.traversal.__;
 import org.apache.tinkerpop.gremlin.process.graph.traversal.step.TraversalOptionParent;
 import org.apache.tinkerpop.gremlin.process.traversal.engine.ComputerTraversalEngine;
+import org.apache.tinkerpop.gremlin.process.traversal.engine.StandardTraversalEngine;
 import org.apache.tinkerpop.gremlin.process.util.metric.TraversalMetrics;
 import org.apache.tinkerpop.gremlin.structure.Compare;
 import org.apache.tinkerpop.gremlin.structure.Contains;
@@ -90,6 +91,8 @@ public abstract class AbstractImportCustomizerProvider implements ImportCustomiz
         imports.add(ComputerTraversalEngine.class.getPackage().getName() + DOT_STAR);
         staticImports.add(__.class.getCanonicalName() + DOT_STAR);
         staticImports.add(TraversalOptionParent.Pick.class.getCanonicalName() + DOT_STAR);
+        staticImports.add(StandardTraversalEngine.class.getCanonicalName() + DOT_STAR);
+        staticImports.add(ComputerTraversalEngine.class.getCanonicalName() + DOT_STAR);
 
         // utils
         imports.add(Gremlin.class.getPackage().getName() + DOT_STAR);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GroovyTraversalScript.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GroovyTraversalScript.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GroovyTraversalScript.java
index 86a8219..dc9797a 100644
--- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GroovyTraversalScript.java
+++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GroovyTraversalScript.java
@@ -61,7 +61,7 @@ public class GroovyTraversalScript<S, E> implements TraversalScript<S, E> {
         configuration.getKeys().forEachRemaining(key -> configurationMap.append("'").append(key).append("':'").append(configuration.getProperty(key)).append("',"));
         configurationMap.deleteCharAt(configurationMap.length() - 1).append("])\n");
         this.openGraphScript = configurationMap.toString();
-        this.openGraphScript = this.openGraphScript + "g.engine(ComputerTraversalEngine.instance())\n";
+        this.openGraphScript = this.openGraphScript + "g.engine(ComputerTraversalEngine.computer)\n";
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
index 8485a0e..07d289e 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
@@ -164,7 +164,7 @@ public abstract class AbstractGremlinTest {
     public Vertex convertToVertex(final Graph g, final String vertexName) {
         // all test graphs have "name" as a unique id which makes it easy to hardcode this...works for now
         final TraversalEngine temp = g.engine();
-        g.engine(StandardTraversalEngine.instance());
+        g.engine(StandardTraversalEngine.standard);
         final Vertex vertex = g.V().has("name", vertexName).next();
         g.engine(temp);
         return vertex;
@@ -176,7 +176,7 @@ public abstract class AbstractGremlinTest {
 
     public Object convertToEdgeId(final Graph g, final String outVertexName, String edgeLabel, final String inVertexName) {
         final TraversalEngine temp = g.engine();
-        g.engine(StandardTraversalEngine.instance());
+        g.engine(StandardTraversalEngine.standard);
         final Object edgeId = g.V().has("name", outVertexName).outE(edgeLabel).as("e").inV().has("name", inVertexName).<Edge>back("e").next().id();
         g.engine(temp);
         return edgeId;

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/GraphProvider.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/GraphProvider.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/GraphProvider.java
index 7ecf897..4fe5e4f 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/GraphProvider.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/GraphProvider.java
@@ -101,7 +101,7 @@ public interface GraphProvider {
     default public Graph openTestGraph(final Configuration config, final GraphStrategy... strategies) {
         final Graph g = GraphFactory.open(config);
         if (config.containsKey("computer") && (boolean) config.getProperty("computer"))
-            g.engine(ComputerTraversalEngine.instance());
+            g.engine(ComputerTraversalEngine.computer);
         return null == strategies ? g : g.strategy(strategies);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
index 3a500e5..64f0fd3 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java
@@ -200,19 +200,6 @@ public abstract class GraphComputerTest extends AbstractGremlinProcessTest {
 
     @Test
     @LoadGraphWith(MODERN)
-    public void shouldOnlyAllowOneOrNoGraphComputerClass() throws Exception {
-        try {
-            g.compute(BadGraphComputer.class, BadGraphComputer.class).submit().get();
-            fail("Should throw an IllegalArgument when two graph computers are passed in");
-        } catch (Exception ex) {
-            final Exception expectedException = Graph.Exceptions.onlyOneOrNoGraphComputerClass();
-            assertEquals(expectedException.getClass(), ex.getClass());
-            assertEquals(expectedException.getMessage(), ex.getMessage());
-        }
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
     public void shouldNotAllowTheSameComputerToExecutedTwice() throws Exception {
         final GraphComputer computer = get_g_compute_setupXX_executeXX_terminateXtrueX();
         computer.submit().get(); // this should work as its the first run of the graph computer

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/PageRankVertexProgramTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/PageRankVertexProgramTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/PageRankVertexProgramTest.java
index b37d64d..ca65f3e 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/PageRankVertexProgramTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/ranking/PageRankVertexProgramTest.java
@@ -42,7 +42,7 @@ public class PageRankVertexProgramTest extends AbstractGremlinProcessTest {
     @LoadGraphWith(MODERN)
     public void shouldExecutePageRank() throws Exception {
         final ComputerResult result = g.compute().program(PageRankVertexProgram.build().create()).submit().get();
-        result.graph().engine(StandardTraversalEngine.instance());
+        result.graph().engine(StandardTraversalEngine.standard);
         result.graph().V().forEachRemaining(v -> {
             assertTrue(v.keys().contains("name"));
             assertFalse(v.keys().contains(PageRankVertexProgram.PAGE_RANK));

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/UnionTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/UnionTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/UnionTest.java
index f061506..a522c56 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/UnionTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/branch/UnionTest.java
@@ -230,7 +230,7 @@ public abstract class UnionTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Number> get_g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX(final Object v1Id, final Object v2Id) {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard);
             return g.V(v1Id, v2Id).union(outE().count(), inE().count(), (Traversal) outE().values("weight").sum()); // DOES NOT WORK IN OLAP
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/DedupTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/DedupTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/DedupTest.java
index 2c5aca9..e8aa5f4 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/DedupTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/DedupTest.java
@@ -145,19 +145,19 @@ public abstract class DedupTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, String> get_g_V_both_dedup_name() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_V_both_dedup_name();
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_both_hasXlabel_softwareX_dedup_byXlangX_name() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_V_both_hasXlabel_softwareX_dedup_byXlangX_name();
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_both_propertiesXnameX_orderXa_bX_dedup_value() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_V_both_propertiesXnameX_orderXa_bX_dedup_value();
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/ExceptTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/ExceptTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/ExceptTest.java
index 2f7c6ac..e992bd3 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/ExceptTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/ExceptTest.java
@@ -35,7 +35,7 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.*;
+import static org.apache.tinkerpop.gremlin.process.graph.traversal.__.bothE;
 import static org.junit.Assert.*;
 
 /**
@@ -184,7 +184,7 @@ public abstract class ExceptTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_out_exceptXg_v2X(final Object v1Id, final Object v2Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).out().except(g.V(v2Id).next());
         }
 
@@ -195,19 +195,19 @@ public abstract class ExceptTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, String> get_g_VX1X_outXcreatedX_inXcreatedX_exceptXg_v1X_name(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).out("created").in("created").except(g.V(v1Id).next()).<String>values("name");
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_exceptXg_V_toListX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard);// TODO
             return g.V().except(g.V().toList());
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_exceptXX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().except(Collections.emptyList());
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/FilterTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/FilterTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/FilterTest.java
index 89e129b..8d7a71c 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/FilterTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/FilterTest.java
@@ -218,49 +218,49 @@ public abstract class FilterTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_filterXfalseX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().filter(v -> false);// TODO: ;
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_filterXtrueX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().filter(v -> true);// TODO: ;
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_filterXlang_eq_javaX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().filter(v -> v.get().<String>property("lang").orElse("none").equals("java"));// TODO: ;
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_filterXage_gt_30X(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).filter(v -> v.get().<Integer>property("age").orElse(0) > 30);// TODO: ;
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_out_filterXage_gt_30X(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).out().filter(v -> v.get().<Integer>property("age").orElse(0) > 30);// TODO: ;
         }
 
         @Override
         public Traversal<Edge, Edge> get_g_E_filterXfalseX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.E().filter(v -> false);// TODO: ;
         }
 
         @Override
         public Traversal<Edge, Edge> get_g_E_filterXtrueX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.E().filter(v -> true);// TODO: ;
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_filterXname_startsWith_m_OR_name_startsWith_pX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().filter(v -> {
                 final String name = v.get().value("name");
                 return name.startsWith("m") || name.startsWith("p");

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/RangeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/RangeTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/RangeTest.java
index f28a47d..d79a69e 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/RangeTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/RangeTest.java
@@ -260,55 +260,55 @@ public abstract class RangeTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_out_limitX2X(Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_VX1X_out_limitX2X(v1Id);
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_localXoutE_limitX1X_inVX_limitX3X() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_V_localXoutE_limitX1X_inVX_limitX3X();
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_outXknowsX_outEXcreatedX_rangeX0_1X_inV(Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_VX1X_outXknowsX_outEXcreatedX_rangeX0_1X_inV(v1Id);
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_outXknowsX_outXcreatedX_rangeX0_1X(Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_VX1X_outXknowsX_outXcreatedX_rangeX0_1X(v1Id);
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_outXcreatedX_inXcreatedX_rangeX1_3X(Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_VX1X_outXcreatedX_inXcreatedX_rangeX1_3X(v1Id);
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_outXcreatedX_inEXcreatedX_rangeX1_3X_outV(Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_VX1X_outXcreatedX_inEXcreatedX_rangeX1_3X_outV(v1Id);
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_repeatXbothX_timesX3X_rangeX5_11X() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_V_repeatXbothX_timesX3X_rangeX5_11X();
         }
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXsoftwareX_asXsX_localXinEXcreatedX_valuesXweightX_fold_limitXlocal_1XX_asXwX_select_byXnameX_by() {
-            g.engine(StandardTraversalEngine.instance()); // TODO: the traversal should work in computer mode, but throws a ClassCastException
+            g.engine(StandardTraversalEngine.standard); // TODO the traversal should work in computer mode, but throws a ClassCastException
             return super.get_g_V_hasLabelXsoftwareX_asXsX_localXinEXcreatedX_valuesXweightX_fold_limitXlocal_1XX_asXwX_select_byXnameX_by();
         }
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXsoftwareX_asXsX_localXinEXcreatedX_valuesXweightX_fold_rangeXlocal_1_3XX_asXwX_select_byXnameX_by() {
-            g.engine(StandardTraversalEngine.instance()); // TODO: the traversal should work in computer mode, but throws a ClassCastException
+            g.engine(StandardTraversalEngine.standard); // TODO the traversal should work in computer mode, but throws a ClassCastException
             return super.get_g_V_hasLabelXsoftwareX_asXsX_localXinEXcreatedX_valuesXweightX_fold_rangeXlocal_1_3XX_asXwX_select_byXnameX_by();
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/RetainTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/RetainTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/RetainTest.java
index eb265fb..998b6aa 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/RetainTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/RetainTest.java
@@ -93,7 +93,7 @@ public abstract class RetainTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_out_retainXg_v2X(final Object v1Id, final Object v2Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).out().retain(g.V(v2Id).next());
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/SampleTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/SampleTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/SampleTest.java
index e761d66..b6f4443 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/SampleTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/SampleTest.java
@@ -151,30 +151,20 @@ public abstract class SampleTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Edge, Edge> get_g_E_sampleX1X() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_E_sampleX1X();
         }
 
         @Override
         public Traversal<Edge, Edge> get_g_E_sampleX2X_byXweightX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_E_sampleX2X_byXweightX();
         }
 
         @Override
         public Traversal<Vertex, Edge> get_g_V_localXoutE_sampleX1X_byXweightXX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return super.get_g_V_localXoutE_sampleX1X_byXweightXX();
         }
-
-        @Override
-        public Traversal<Vertex, Map<String, Collection<Double>>> get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXsampleXlocal_2XX() {
-            return super.get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXsampleXlocal_2XX();
-        }
-
-        @Override
-        public Traversal<Vertex, Map<String, Collection<Double>>> get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXsampleXlocal_5XX() {
-            return super.get_g_V_group_byXlabelX_byXbothE_valuesXweightX_foldX_byXsampleXlocal_5XX();
-        }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/WhereTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/WhereTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/WhereTest.java
index daf53a4..1b618d4 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/WhereTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/filter/WhereTest.java
@@ -178,7 +178,7 @@ public abstract class WhereTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_select_whereXa_outXknowsX_bX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().has("age").as("a").out().in().has("age").as("b").select().where(as("a").out("knows").as("b"));
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/CountTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/CountTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/CountTest.java
index da60f2c..b128e71 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/CountTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/CountTest.java
@@ -199,7 +199,7 @@ public abstract class CountTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Long> get_g_V_fold_countXlocalX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().fold().count(Scope.local);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/FoldTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/FoldTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/FoldTest.java
index e048cba..8628c0b 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/FoldTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/FoldTest.java
@@ -114,7 +114,7 @@ public abstract class FoldTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_fold_unfold() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return (Traversal) g.V().fold().unfold(); // Does not work in OLAP cause fold() is not an endstep.
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MapTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MapTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MapTest.java
index 9c4426f..480902b 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MapTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/MapTest.java
@@ -153,34 +153,33 @@ public abstract class MapTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, String> get_g_VX1X_mapXnameX(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).<String>map(v -> v.get().value("name"));// TODO: ;
         }
 
         @Override
         public Traversal<Vertex, Integer> get_g_VX1X_outE_label_mapXlengthX(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).<String>outE().label().map(l -> l.get().length());// TODO: ;
         }
 
         @Override
         public Traversal<Vertex, Integer> get_g_VX1X_out_mapXnameX_mapXlengthX(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).<String>out().map(v -> v.get().value("name")).map(n -> n.get().toString().length());// TODO: ;
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_asXaX_out_mapXa_nameX() {
             // TODO: Doesn't work for graph computer because sideEffects are not accessible
-
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().as("a").out().<String>map(v -> v.<Vertex>path("a").value("name"));
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_asXaX_out_out_mapXa_name_it_nameX() {
             // TODO: Doesn't work for graph computer because sideEffects are not accessible
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().as("a").out().out().map(v -> v.<Vertex>path("a").<String>value("name") + v.get().<String>value("name"));
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/OrderTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/OrderTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/OrderTest.java
index ad7c46b..b4ea7dd 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/OrderTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/OrderTest.java
@@ -289,7 +289,7 @@ public abstract class OrderTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, String> get_g_V_name_order_byXa1_b1X_byXb2_a2X() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().<String>values("name")
                     .order()
                     .by((a, b) -> a.substring(1, 2).compareTo(b.substring(1, 2)))
@@ -298,25 +298,25 @@ public abstract class OrderTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, String> get_g_V_order_byXname_incrX_name() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().order().by("name", Order.incr).values("name");
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_order_byXnameX_name() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().order().by("name", Order.incr).values("name");
         }
 
         @Override
         public Traversal<Vertex, Double> get_g_V_outE_order_byXweight_decrX_weight() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().outE().order().by("weight", Order.decr).values("weight");
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_order_byXname_a1_b1X_byXname_b2_a2X_name() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().order().
                     <String>by("name", (a, b) -> a.substring(1, 2).compareTo(b.substring(1, 2))).
                     <String>by("name", (a, b) -> b.substring(2, 3).compareTo(a.substring(2, 3))).values("name");  // TODO: ;
@@ -329,7 +329,7 @@ public abstract class OrderTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Map<Integer, Integer>> get_g_VX1X_hasXlabel_personX_mapXmapXint_ageXX_orderXlocalX_byXvalueDecrX_byXkeyIncrX(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).map(v -> {
                 final Map<Integer, Integer> map = new HashMap<>();
                 map.put(1, (int) v.get().value("age"));
@@ -342,7 +342,7 @@ public abstract class OrderTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Vertex> get_g_V_order_byXoutE_count__decrX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().order().by(outE().count(), Order.decr); // TODO: ;  DETACHED VERTICES DO NOT HAVE EDGES
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SelectTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SelectTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SelectTest.java
index 3c7f7d8..813c789 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SelectTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/SelectTest.java
@@ -241,48 +241,48 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
         @Override
         public Traversal<Vertex, Map<String, String>> get_g_VX1X_asXaX_outXknowsX_asXbX_select_byXnameX(final Object v1Id) {
             // TODO: Micro elements do not store properties
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).as("a").out("knows").as("b").<String>select().by("name"); //;
         }
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_asXaX_outXknowsX_asXbX_selectXaX(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).as("a").out("knows").as("b").<Vertex>select("a");  // TODO
         }
 
         @Override
         public Traversal<Vertex, String> get_g_VX1X_asXaX_outXknowsX_asXbX_selectXaX_byXnameX(final Object v1Id) {
             // TODO: Micro elements do not store properties
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).as("a").out("knows").as("b").<String>select("a").by("name");  // ;
         }
 
         @Override
         public Traversal<Vertex, Map<String, String>> get_g_V_asXaX_out_asXbX_select_byXnameX() {
             // TODO: Micro elements do not store properties
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().as("a").out().as("b").<String>select().by("name");  // ;
         }
 
         @Override
         public Traversal<Vertex, Map<String, String>> get_g_V_asXaX_out_aggregate_asXbX_select_byXnameX() {
             // TODO: Micro elements do not store properties
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().as("a").out().aggregate().as("b").<String>select().by("name");
         }
 
         @Override
         public Traversal<Vertex, Map<String, String>> get_g_V_asXaX_name_order_asXbX_select_byXnameX_by() {
             // TODO: Micro elements do not store properties
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().as("a").values("name").order().as("b").<String>select().by("name").by();
         }
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_hasXname_gremlinX_inEXusesX_order_byXskill_incrX_asXaX_outV_asXbX_select_byXskillX_byXnameX() {
             // TODO: Micro elements do not store properties
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().has("name", "gremlin").inE("uses").order().by("skill", Order.incr).as("a").outV().as("b").select().by("skill").by("name");
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/UnfoldTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/UnfoldTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/UnfoldTest.java
index c2b6ea1..e901dbe 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/UnfoldTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/map/UnfoldTest.java
@@ -115,7 +115,7 @@ public abstract class UnfoldTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, String> get_V_valueMap_unfold_mapXkeyX() {
-            g.engine(StandardTraversalEngine.instance()); // TODO
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V().valueMap().<Map.Entry<String, List>>unfold().map(m -> m.get().getKey()); // TODO: ;
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/4d23094d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/InjectTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/InjectTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/InjectTest.java
index 5dc28b5..0a9e9f0 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/InjectTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/graph/traversal/step/sideEffect/InjectTest.java
@@ -96,13 +96,13 @@ public abstract class InjectTest extends AbstractGremlinTest {
 
         @Override
         public Traversal<Vertex, String> get_g_VX1X_out_injectXv2X_name(final Object v1Id, final Object v2Id) {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).out().inject(g.V(v2Id).next()).<String>values("name");
         }
 
         @Override
         public Traversal<Vertex, Path> get_g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path(final Object v1Id) {
-            g.engine(StandardTraversalEngine.instance());
+            g.engine(StandardTraversalEngine.standard); // TODO
             return g.V(v1Id).out().<String>values("name").inject("daniel").as("a").map(t -> t.get().length()).path();
         }
     }