You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2023/12/28 15:37:41 UTC

(tinkerpop) 01/01: TINKERPOP-3028 Translators using grammar

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch TINKERPOP-3028
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit ba51c5c2f78e70c5849175cba2dd6effa3518b82
Author: Stephen Mallette <st...@amazon.com>
AuthorDate: Thu Dec 28 10:36:17 2023 -0500

    TINKERPOP-3028 Translators using grammar
    
    Implemented Java, Python, a normalizer for language and an anonymizer implementation.
---
 CHANGELOG.asciidoc                                 |    2 +
 docs/src/reference/the-traversal.asciidoc          |    2 +-
 docs/src/upgrade/release-4.x.x.asciidoc            |    5 +
 .../grammar/DefaultGremlinBaseVisitor.java         |    4 +
 .../language/grammar/TraversalStrategyVisitor.java |    6 +-
 .../translator/AnonymizedTranslatorVisitor.java    |  181 ++
 .../language/translator/GremlinTranslator.java     |  118 +
 .../language/translator/JavaTranslateVisitor.java  |  293 +++
 .../translator/PythonTranslateVisitor.java         |  381 ++++
 .../language/translator/TranslateVisitor.java      | 2359 ++++++++++++++++++++
 .../gremlin/language/translator/Translation.java   |   66 +
 .../gremlin/language/translator/Translator.java    |   52 +
 .../language/translator/TranslatorException.java   |   25 +
 .../strategy/decoration/SeedStrategy.java          |   19 +-
 .../grammar/TraversalStrategyVisitorTest.java      |    2 +-
 .../language/translator/GremlinTranslatorTest.java |  573 +++++
 .../traversal/translator/DotNetTranslatorTest.java |    2 +-
 .../traversal/translator/GolangTranslatorTest.java |    2 +-
 .../translator/JavascriptTranslatorTest.java       |    2 +-
 .../traversal/translator/PythonTranslatorTest.java |    2 +-
 gremlin-language/src/main/antlr4/Gremlin.g4        |    6 +-
 gremlin-python/build/generate.groovy               |   58 +-
 .../gremlin_python/process/graph_traversal.py      |   31 +
 .../python/gremlin_python/process/strategies.py    |    2 +-
 .../python/gremlin_python/process/traversal.py     |    4 +-
 .../src/main/python/radish/feature_steps.py        |   26 +-
 gremlin-python/src/main/python/radish/gremlin.py   | 2255 +++++++++----------
 .../decoration/SeedStrategyProcessTest.java        |    2 +-
 .../gremlin/test/features/branch/Repeat.feature    |    2 +-
 29 files changed, 5286 insertions(+), 1196 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 783cf6bedb..1f98bf1d20 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -24,6 +24,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 === TinkerPop 4.0.0 (NOT OFFICIALLY RELEASED YET)
 
 * Added support for deserialization of `Set` for `gremlin-javascript`.
+* Made `SeedStrategy` construction consistent with the builder pattern and removed the public constructor.
+* Added grammar-based `Translator`.
 * Added integer overflow checks for `sum()`.
 * Gremlin Server only supports instantiation of `authentication.authenticationHandler` with three-arg constructor.
 * Removed previously deprecated two-arg constructors for `authentication.authenticationHandler` implementations.
diff --git a/docs/src/reference/the-traversal.asciidoc b/docs/src/reference/the-traversal.asciidoc
index 2de4408ca4..470cd445ca 100644
--- a/docs/src/reference/the-traversal.asciidoc
+++ b/docs/src/reference/the-traversal.asciidoc
@@ -5815,7 +5815,7 @@ With `SeedStrategy` in place, however, the same order is applied each time:
 
 [gremlin-groovy,modern]
 ----
-seedStrategy = new SeedStrategy(999998L)
+seedStrategy = SeedStrategy.build().seed(999998L).create()
 g.withStrategies(seedStrategy).V().values('name').fold().order(local).by(shuffle)
 g.withStrategies(seedStrategy).V().values('name').fold().order(local).by(shuffle)
 g.withStrategies(seedStrategy).V().values('name').fold().order(local).by(shuffle)
diff --git a/docs/src/upgrade/release-4.x.x.asciidoc b/docs/src/upgrade/release-4.x.x.asciidoc
index ddaf969d05..ed6634d389 100644
--- a/docs/src/upgrade/release-4.x.x.asciidoc
+++ b/docs/src/upgrade/release-4.x.x.asciidoc
@@ -80,6 +80,11 @@ these were deserialized into arrays.
 Integer overflows caused by addition and multiplication operations will throw an exception instead of being silently
 skipped with incorrect result.
 
+==== SeedStrategy Construction
+
+The `SeedStrategy` public constructor has been removed for Java and has been replaced by the builder pattern common
+to all strategies. This change was made to ensure that the `SeedStrategy` could be constructed in a consistent manner.
+
 === Upgrading for Providers
 
 ==== Graph System Providers
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
index 35660c1089..5e0a510ff5 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
@@ -1283,6 +1283,10 @@ public class DefaultGremlinBaseVisitor<T> extends AbstractParseTreeVisitor<T> im
 	 * {@inheritDoc}
 	 */
 	@Override public T visitTraversalStrategyArgs_ProductiveByStrategy(final GremlinParser.TraversalStrategyArgs_ProductiveByStrategyContext ctx) { return null; }
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override public T visitTraversalStrategyArgs_SeedStrategy(final GremlinParser.TraversalStrategyArgs_SeedStrategyContext ctx) { return null; }
 	/**
 	 * {@inheritDoc}
 	 */
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalStrategyVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalStrategyVisitor.java
index 7fd04974f5..104e2fd4db 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalStrategyVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalStrategyVisitor.java
@@ -60,13 +60,17 @@ public class TraversalStrategyVisitor extends DefaultGremlinBaseVisitor<Traversa
             else if (strategyName.equals(SubgraphStrategy.class.getSimpleName()))
                 return getSubgraphStrategy(ctx.traversalStrategyArgs_SubgraphStrategy());
             else if (strategyName.equals(SeedStrategy.class.getSimpleName()))
-                return new SeedStrategy(antlr.argumentVisitor.parseNumber(ctx.integerArgument()).longValue());
+                return getSeedStrategy(ctx.traversalStrategyArgs_SeedStrategy());
             else if (strategyName.equals(ProductiveByStrategy.class.getSimpleName()))
                 return getProductiveByStrategy(ctx.traversalStrategyArgs_ProductiveByStrategy());
         }
         throw new IllegalStateException("Unexpected TraversalStrategy specification - " + ctx.getText());
     }
 
+    private SeedStrategy getSeedStrategy(final GremlinParser.TraversalStrategyArgs_SeedStrategyContext ctx) {
+        return SeedStrategy.build().seed(antlr.argumentVisitor.parseNumber(ctx.integerArgument()).longValue()).create();
+    }
+
     private EdgeLabelVerificationStrategy getEdgeLabelVerificationStrategy(final List<GremlinParser.TraversalStrategyArgs_EdgeLabelVerificationStrategyContext> ctxs) {
         if (null == ctxs || ctxs.isEmpty())
             return EdgeLabelVerificationStrategy.build().create();
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/AnonymizedTranslatorVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/AnonymizedTranslatorVisitor.java
new file mode 100644
index 0000000000..bb5823d133
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/AnonymizedTranslatorVisitor.java
@@ -0,0 +1,181 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.language.translator;
+
+import org.antlr.v4.runtime.ParserRuleContext;
+import org.apache.tinkerpop.gremlin.language.grammar.GremlinParser;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * A translator that anonymizes Gremlin so that arguments that might contain sensitive information are removed.
+ */
+public class AnonymizedTranslatorVisitor extends TranslateVisitor {
+
+    private final Map<String, Map<Object, String>> simpleNameToObjectCache = new HashMap<>();
+
+    public AnonymizedTranslatorVisitor() {
+        this("g");
+    }
+
+    public AnonymizedTranslatorVisitor(final String graphTraversalSourceName) {
+        super(graphTraversalSourceName);
+    }
+
+    /**
+     * Anonymizes the given context by replacing the text with a lower case version of the class name and a number
+     * that is incremented for each unique value.
+     *
+     * @param ctx   the context to anonymize
+     * @param clazz the class of the context
+     * @return null
+     */
+    protected Void anonymize(final ParserRuleContext ctx, final Class<?> clazz) {
+        final String text = ctx.getText();
+        final String type = clazz.getSimpleName();
+        Map<Object, String> objectToAnonymizedString = simpleNameToObjectCache.get(type);
+        if (objectToAnonymizedString != null){
+            // this object type has been handled at least once before
+            final String innerValue = objectToAnonymizedString.get(text);
+            if (innerValue != null){
+                sb.append(innerValue);
+            } else {
+                final String anonymizedValue = type.toLowerCase() + objectToAnonymizedString.size();
+                objectToAnonymizedString.put(text, anonymizedValue);
+                sb.append(anonymizedValue);
+            }
+        } else {
+            objectToAnonymizedString = new HashMap<>();
+            simpleNameToObjectCache.put(type, objectToAnonymizedString);
+            final String anonymizedValue = type.toLowerCase() + objectToAnonymizedString.size();
+            objectToAnonymizedString.put(text, anonymizedValue);
+            sb.append(anonymizedValue);
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitGenericLiteralCollection(final GremlinParser.GenericLiteralCollectionContext ctx) {
+        return anonymize(ctx, List.class);
+    }
+
+    @Override
+    public Void visitGenericLiteralMap(final GremlinParser.GenericLiteralMapContext ctx) {
+        return anonymize(ctx, Map.class);
+    }
+
+    @Override
+    public Void visitGenericLiteralMapNullableArgument(final GremlinParser.GenericLiteralMapNullableArgumentContext ctx) {
+        return anonymize(ctx, Map.class);
+    }
+
+    @Override
+    public Void visitStringLiteral(final GremlinParser.StringLiteralContext ctx) {
+        return anonymize(ctx, String.class);
+    }
+
+    @Override
+    public Void visitStringNullableLiteral(final GremlinParser.StringNullableLiteralContext ctx) {
+        return anonymize(ctx, String.class);
+    }
+
+    @Override
+    public Void visitIntegerLiteral(final GremlinParser.IntegerLiteralContext ctx) {
+        final String integerLiteral = ctx.getText().toLowerCase();
+
+        // check suffix
+        final int lastCharIndex = integerLiteral.length() - 1;
+        final char lastCharacter = integerLiteral.charAt(lastCharIndex);
+        switch (lastCharacter) {
+            case 'b':
+                anonymize(ctx, Byte.class);
+                break;
+            case 's':
+                anonymize(ctx, Short.class);
+                break;
+            case 'i':
+                anonymize(ctx, Integer.class);
+                break;
+            case 'l':
+                anonymize(ctx, Long.class);
+                break;
+            case 'n':
+                anonymize(ctx, BigInteger.class);
+                break;
+            default:
+                anonymize(ctx, Number.class);
+                break;
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitFloatLiteral(final GremlinParser.FloatLiteralContext ctx) {
+        final String floatLiteral = ctx.getText().toLowerCase();
+
+        // check suffix
+        final int lastCharIndex = floatLiteral.length() - 1;
+        final char lastCharacter = floatLiteral.charAt(lastCharIndex);
+        switch (lastCharacter) {
+            case 'f':
+                anonymize(ctx, Float.class);
+                break;
+            case 'd':
+                anonymize(ctx, Double.class);
+                break;
+            case 'm':
+                anonymize(ctx, BigDecimal.class);
+                break;
+            default:
+                anonymize(ctx, Number.class);
+                break;
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitBooleanLiteral(final GremlinParser.BooleanLiteralContext ctx) {
+        return anonymize(ctx, Boolean.class);
+    }
+
+    @Override
+    public Void visitDateLiteral(final GremlinParser.DateLiteralContext ctx) {
+        return anonymize(ctx, Date.class);
+    }
+
+    @Override
+    public Void visitNullLiteral(final GremlinParser.NullLiteralContext ctx) {
+        return anonymize(ctx, Object.class);
+    }
+
+    @Override
+    public Void visitNanLiteral(final GremlinParser.NanLiteralContext ctx) {
+        return anonymize(ctx, Number.class);
+    }
+
+    @Override
+    public Void visitInfLiteral(final GremlinParser.InfLiteralContext ctx) {
+        return anonymize(ctx, Number.class);
+    }
+}
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslator.java
new file mode 100644
index 0000000000..66808e63bf
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslator.java
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.language.translator;
+
+import org.antlr.v4.runtime.CharStream;
+import org.antlr.v4.runtime.CharStreams;
+import org.antlr.v4.runtime.CommonTokenStream;
+import org.antlr.v4.runtime.atn.PredictionMode;
+import org.apache.tinkerpop.gremlin.language.grammar.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Translates a String representation of a Gremlin traversal into a various source code representation of that traversal
+ * using the ANTLR grammar.
+ */
+public class GremlinTranslator {
+    private static final Logger log = LoggerFactory.getLogger(GremlinTranslator.class);
+    private static final GremlinErrorListener errorListener = new GremlinErrorListener();
+
+    /**
+     * Convert a Gremlin string into a Java source code representation of that traversal.
+     */
+    public static Translation translate(final String query) {
+        return translate(query, "g");
+    }
+
+    /**
+     * Convert a Gremlin string into a Java source code representation of that traversal.
+     */
+    public static Translation translate(final String query, final String graphTraversalSourceName) {
+        return translate(query, graphTraversalSourceName, Translator.JAVA);
+    }
+
+    /**
+     * Convert a Gremlin string into the specified source code representation of that traversal.
+     */
+    public static Translation translate(final String query, final String graphTraversalSourceName, final Translator translator) {
+        return translate(query, translator.getTranslateVisitor(graphTraversalSourceName));
+    }
+
+    /**
+     * Convert a Gremlin string into the specified source code representation of that traversal.
+     */
+    public static Translation translate(final String query, final Translator translator) {
+        return translate(query, translator.getTranslateVisitor("g"));
+    }
+
+    /**
+     * Convert a Gremlin string into a source code representation of that traversal using a custom visitor.
+     */
+    public static Translation translate(final String query, final TranslateVisitor visitor)  {
+        final CharStream in = CharStreams.fromString(query);
+        final GremlinLexer lexer = new GremlinLexer(in);
+        lexer.removeErrorListeners();
+        lexer.addErrorListener(errorListener);
+
+        final CommonTokenStream tokens = new CommonTokenStream(lexer);
+
+        // Setup error handler on parser
+        final GremlinParser parser = new GremlinParser(tokens);
+        // SLL prediction mode is faster than the LL prediction mode when parsing the grammar,
+        // but it does not cover parsing all types of input.  We use the SLL by default, and fallback
+        // to LL mode if fails to parse the query.
+        parser.getInterpreter().setPredictionMode(PredictionMode.SLL);
+        parser.removeErrorListeners();
+        parser.addErrorListener(errorListener);
+
+        GremlinParser.QueryListContext queryContext;
+        try {
+            queryContext = parser.queryList();
+        } catch (Exception ex) {
+            // Retry parsing the query again with using LL prediction mode.  LL parsing mode is more powerful
+            // so retrying the parsing would help parsing the rare edge cases.
+            try {
+                tokens.seek(0); // rewind input stream
+                lexer.reset();
+                parser.reset();
+                parser.getInterpreter().setPredictionMode(PredictionMode.LL);
+                log.debug("Query parsed with using LL prediction mode: {}", query);
+                queryContext = parser.queryList();
+            } catch (Exception e) {
+                log.debug("Query parsing failed in retry with exception" + e);
+                throw new GremlinParserException("Failed to interpret Gremlin query: " + e.getMessage());
+            }
+        }
+
+        try {
+            visitor.visit(queryContext);
+        } catch (ClassCastException ex) {
+            // Special case that can be interpreted as a (semantic) parse error.
+            // Do not include ex as the cause - org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.eval()
+            // in Tinkerpop v 3.3.0, strips root causes off their outer exception objects.
+            // We just log ex here for debugging purposes.
+            log.debug("Converting a java.lang.ClassCastException to GremlinParserException," +
+                    " assuming that it indicates a semantic parse error.", ex);
+            throw new GremlinParserException("Failed to interpret Gremlin query: " + ex.getMessage());
+        }
+
+        return new Translation(query, visitor.getTranslated(), visitor.getParameters());
+    }
+}
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/JavaTranslateVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/JavaTranslateVisitor.java
new file mode 100644
index 0000000000..aa4966b2e6
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/JavaTranslateVisitor.java
@@ -0,0 +1,293 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.language.translator;
+
+import org.antlr.v4.runtime.tree.ParseTree;
+import org.antlr.v4.runtime.tree.TerminalNode;
+import org.apache.tinkerpop.gremlin.language.grammar.GremlinParser;
+import org.apache.tinkerpop.gremlin.util.DatetimeHelper;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Converts a Gremlin traversal string into a Java source code representation of that traversal with an aim at
+ * sacrificing some formatting for the ability to compile correctly.
+ * <ul>
+ *     <li>Range syntax has no direct support</li>
+ *     <li>If floats are not suffixed they will translate as BigDecimal</li>
+ *     <li>Makes anonymous traversals explicit with double underscore</li>
+ *     <li>Makes enums explicit with their proper name</li>
+ * </ul>
+ */
+public class JavaTranslateVisitor extends TranslateVisitor {
+    public JavaTranslateVisitor() {
+        super("g");
+    }
+
+    public JavaTranslateVisitor(final String graphTraversalSourceName) {
+        super(graphTraversalSourceName);
+    }
+
+    @Override
+    public Void visitStructureVertex(final GremlinParser.StructureVertexContext ctx) {
+        sb.append("new DetachedVertex(");
+        visit(ctx.getChild(3)); // id
+        sb.append(", ");
+        visit(ctx.getChild(5)); // label
+        sb.append(")");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalStrategy(final GremlinParser.TraversalStrategyContext ctx) {
+        if (ctx.getChildCount() == 1)
+            sb.append(ctx.getText()).append(".instance()");
+        else {
+            sb.append(ctx.getChild(1).getText()).append(".build()");
+
+            // get a list of all the arguments to the strategy - i.e. anything not a terminal node
+            final List<ParseTree> strategyArgs = ctx.children.stream()
+                    .filter(c -> !(c instanceof TerminalNode))
+                    .collect(java.util.stream.Collectors.toList());
+
+            for (ParseTree arg : strategyArgs) {
+                sb.append(".");
+                visit(arg);
+            }
+            sb.append(".create()");
+        }
+
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_ProductiveByStrategy(final GremlinParser.TraversalStrategyArgs_ProductiveByStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_PartitionStrategy(final GremlinParser.TraversalStrategyArgs_PartitionStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_SubgraphStrategy(final GremlinParser.TraversalStrategyArgs_SubgraphStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_EdgeLabelVerificationStrategy(final GremlinParser.TraversalStrategyArgs_EdgeLabelVerificationStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_ReservedKeysVerificationStrategy(final GremlinParser.TraversalStrategyArgs_ReservedKeysVerificationStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_SeedStrategy(final GremlinParser.TraversalStrategyArgs_SeedStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralMap(final GremlinParser.GenericLiteralMapContext ctx) {
+        sb.append("new LinkedHashMap<Object, Object>() {{ ");
+        for (int i = 0; i < ctx.mapEntry().size(); i++) {
+            final GremlinParser.MapEntryContext mapEntryContext = ctx.mapEntry(i);
+            visit(mapEntryContext);
+            if (i < ctx.mapEntry().size() - 1)
+                sb.append(" ");
+        }
+        sb.append(" }}");
+        return null;
+    }
+
+    @Override
+    public Void visitMapEntry(final GremlinParser.MapEntryContext ctx) {
+        sb.append("put(");
+        // if it is a terminal node then it has to be processed as a string for Java but otherwise it can 
+        // just be handled as a generic literal 
+        if (ctx.getChild(0) instanceof TerminalNode) {
+            wrapTextInQuotes(ctx.getChild(0).getText());
+        }  else {
+            visit(ctx.getChild(0));
+        }
+        sb.append(", ");
+        visit(ctx.getChild(2)); // value
+        sb.append(");");
+        return null;
+    }
+
+    @Override
+    public Void visitDateLiteral(final GremlinParser.DateLiteralContext ctx) {
+        // child at 2 is the date argument to datetime() and comes enclosed in quotes
+        final String dtString = ctx.getChild(2).getText();
+        final Date dt = DatetimeHelper.parse(removeFirstAndLastCharacters(dtString));
+        sb.append("new Date(");
+        sb.append(dt.getTime());
+        sb.append(")");
+        return null;
+    }
+
+    @Override
+    public Void visitNullLiteral(final GremlinParser.NullLiteralContext ctx) {
+        sb.append("null");
+        return null;
+    }
+
+    @Override
+    public Void visitNanLiteral(final GremlinParser.NanLiteralContext ctx) {
+        sb.append("Double.NaN");
+        return null;
+    }
+
+    @Override
+    public Void visitInfLiteral(final GremlinParser.InfLiteralContext ctx) {
+        if (ctx.SignedInfLiteral().getText().equals("-Infinity"))
+            sb.append("Double.NEGATIVE_INFINITY");
+        else
+            sb.append("Double.POSITIVE_INFINITY");
+        return null;
+    }
+
+    @Override
+    public Void visitStringLiteral(final GremlinParser.StringLiteralContext ctx) {
+        // remove the first and last character (single or double quotes)
+        final String text = removeFirstAndLastCharacters(ctx.getText());
+        wrapTextInQuotes(text);
+        return null;
+    }
+
+    @Override
+    public Void visitStringNullableLiteral(final GremlinParser.StringNullableLiteralContext ctx) {
+        // remove the first and last character (single or double quotes) but only if it is not null
+        if (ctx.getText().equals("null")) {
+            sb.append("null");
+        } else {
+            final String text = removeFirstAndLastCharacters(ctx.getText());
+            wrapTextInQuotes(text);
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitIntegerLiteral(final GremlinParser.IntegerLiteralContext ctx) {
+        final String integerLiteral = ctx.getText().toLowerCase();
+
+        // check suffix
+        final int lastCharIndex = integerLiteral.length() - 1;
+        final char lastCharacter = integerLiteral.charAt(lastCharIndex);
+        switch (lastCharacter) {
+            case 'b':
+                // parse B/b as byte
+                sb.append("new Byte(");
+                sb.append(integerLiteral, 0, lastCharIndex);
+                sb.append(")");
+                break;
+            case 's':
+                // parse S/s as short
+                sb.append("new Short(");
+                sb.append(integerLiteral, 0, lastCharIndex);
+                sb.append(")");
+                break;
+            case 'i':
+                // parse I/i as integer
+                sb.append(integerLiteral, 0, lastCharIndex);
+                break;
+            case 'l':
+                // parse L/l as long
+                sb.append(integerLiteral);
+                break;
+            case 'n':
+                // parse N/n as BigInteger
+                sb.append("new BigInteger(\"");
+                sb.append(integerLiteral, 0, lastCharIndex);
+                sb.append("\")");
+                break;
+            default:
+                // everything else just goes as specified
+                sb.append(integerLiteral);
+                break;
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitFloatLiteral(final GremlinParser.FloatLiteralContext ctx) {
+        final String floatLiteral = ctx.getText().toLowerCase();
+
+        // check suffix
+        final int lastCharIndex = floatLiteral.length() - 1;
+        final char lastCharacter = floatLiteral.charAt(lastCharIndex);
+        switch (lastCharacter) {
+            case 'f':
+            case 'd':
+                // parse F/f as Float and D/d suffix as Double
+                sb.append(floatLiteral);
+                break;
+            case 'm':
+                // parse M/m or whatever which could be a parse exception
+                sb.append("new BigDecimal(\"");
+                sb.append(floatLiteral, 0, lastCharIndex);
+                sb.append("\")");
+                break;
+            default:
+                // everything else just goes as specified
+                sb.append(floatLiteral);
+                break;
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitGenericLiteralRange(final GremlinParser.GenericLiteralRangeContext ctx) {
+        throw new TranslatorException("Java does not support range literals");
+    }
+
+    @Override
+    public Void visitGenericLiteralCollection(final GremlinParser.GenericLiteralCollectionContext ctx) {
+        sb.append("new ArrayList<Object>() {{ ");
+        for (int i = 0; i < ctx.genericLiteral().size(); i++) {
+            final GremlinParser.GenericLiteralContext genericLiteralContext = ctx.genericLiteral(i);
+            sb.append("add(");
+            visit(genericLiteralContext);
+            sb.append(");");
+            if (i < ctx.genericLiteral().size() - 1)
+                sb.append(" ");
+        }
+        sb.append(" }}");
+        return null;
+    }
+
+    private void wrapTextInQuotes(final String text) {
+        sb.append("\"");
+        sb.append(text);
+        sb.append("\"");
+    }
+
+    private Void appendStrategyArguments(final ParseTree ctx) {
+        sb.append(ctx.getChild(0)).append("(");
+        visit(ctx.getChild(2));
+        sb.append(")");
+        return null;
+    }
+
+}
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/PythonTranslateVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/PythonTranslateVisitor.java
new file mode 100644
index 0000000000..22400effaf
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/PythonTranslateVisitor.java
@@ -0,0 +1,381 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.language.translator;
+
+import org.antlr.v4.runtime.tree.ParseTree;
+import org.antlr.v4.runtime.tree.TerminalNode;
+import org.apache.tinkerpop.gremlin.language.grammar.GremlinParser;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
+import org.apache.tinkerpop.gremlin.util.DatetimeHelper;
+
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Converts a Gremlin traversal string into a Python source code representation of that traversal with an aim at
+ * sacrificing some formatting for the ability to compile correctly.
+ * <ul>
+ *     <li>Range syntax has no direct support</li>
+ *     <li>If floats are not suffixed they will translate as BigDecimal</li>
+ *     <li>Makes anonymous traversals explicit with double underscore</li>
+ *     <li>Makes enums explicit with their proper name</li>
+ * </ul>
+ */
+public class PythonTranslateVisitor extends TranslateVisitor {
+
+    public PythonTranslateVisitor() {
+        super("g");
+    }
+
+    public PythonTranslateVisitor(final String graphTraversalSourceName) {
+        super(graphTraversalSourceName);
+    }
+
+    @Override
+    public Void visitBooleanLiteral(final GremlinParser.BooleanLiteralContext ctx) {
+        // capitalize the first letter of the text
+        final String text = ctx.getText();
+        sb.append(text.substring(0, 1).toUpperCase()).append(text.substring(1));
+        return null;
+    }
+
+    @Override
+    public Void visitStructureVertex(final GremlinParser.StructureVertexContext ctx) {
+        sb.append("Vertex(");
+        visit(ctx.getChild(3)); // id
+        sb.append(", ");
+        visit(ctx.getChild(5)); // label
+        sb.append(")");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalStrategy(final GremlinParser.TraversalStrategyContext ctx) {
+        if (ctx.getChildCount() == 1)
+            sb.append(ctx.getText()).append("()");
+        else {
+            sb.append(ctx.getChild(1).getText()).append("(");
+
+            // get a list of all the arguments to the strategy - i.e. anything not a terminal node
+            final List<ParseTree> strategyArgs = ctx.children.stream()
+                    .filter(c -> !(c instanceof TerminalNode))
+                    .collect(java.util.stream.Collectors.toList());
+
+            for (int i = 0; i < strategyArgs.size(); i++) {
+                visit(strategyArgs.get(i));
+                if (i < strategyArgs.size() - 1)
+                    sb.append(", ");
+            }
+            sb.append(")");
+        }
+
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_ProductiveByStrategy(final GremlinParser.TraversalStrategyArgs_ProductiveByStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_PartitionStrategy(final GremlinParser.TraversalStrategyArgs_PartitionStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_SubgraphStrategy(final GremlinParser.TraversalStrategyArgs_SubgraphStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_EdgeLabelVerificationStrategy(final GremlinParser.TraversalStrategyArgs_EdgeLabelVerificationStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_ReservedKeysVerificationStrategy(final GremlinParser.TraversalStrategyArgs_ReservedKeysVerificationStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_SeedStrategy(GremlinParser.TraversalStrategyArgs_SeedStrategyContext ctx) {
+        return appendStrategyArguments(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralMap(final GremlinParser.GenericLiteralMapContext ctx) {
+        sb.append("{ ");
+        for (int i = 0; i < ctx.mapEntry().size(); i++) {
+            final GremlinParser.MapEntryContext mapEntryContext = ctx.mapEntry(i);
+            visit(mapEntryContext);
+            if (i < ctx.mapEntry().size() - 1)
+                sb.append(", ");
+        }
+        sb.append(" }");
+        return null;
+    }
+
+    @Override
+    public Void visitMapEntry(final GremlinParser.MapEntryContext ctx) {
+        // if it is a terminal node then it has to be processed as a string for Java but otherwise it can
+        // just be handled as a generic literal 
+        if (ctx.getChild(0) instanceof TerminalNode) {
+            wrapTextInQuotes(ctx.getChild(0).getText());
+        }  else {
+            visit(ctx.getChild(0));
+        }
+        sb.append(": ");
+        visit(ctx.getChild(2)); // value
+        return null;
+    }
+
+    @Override
+    public Void visitDateLiteral(final GremlinParser.DateLiteralContext ctx) {
+        // child at 2 is the date argument to datetime() and comes enclosed in quotes
+        final String dtString = ctx.getChild(2).getText();
+        final Date dt = DatetimeHelper.parse(removeFirstAndLastCharacters(dtString));
+        sb.append("datetime.datetime.utcfromtimestamp(" + dt.getTime() + " / 1000.0)");
+        return null;
+    }
+
+    @Override
+    public Void visitNullLiteral(final GremlinParser.NullLiteralContext ctx) {
+        sb.append("None");
+        return null;
+    }
+
+    @Override
+    public Void visitNanLiteral(final GremlinParser.NanLiteralContext ctx) {
+        sb.append("float('nan')");
+        return null;
+    }
+
+    @Override
+    public Void visitInfLiteral(final GremlinParser.InfLiteralContext ctx) {
+        if (ctx.SignedInfLiteral().getText().equals("-Infinity"))
+            sb.append("float('-inf')");
+        else
+            sb.append("float('inf')");
+        return null;
+    }
+
+    @Override
+    public Void visitStringLiteral(final GremlinParser.StringLiteralContext ctx) {
+        // remove the first and last character (single or double quotes)
+        final String text = removeFirstAndLastCharacters(ctx.getText());
+        wrapTextInQuotes(text);
+        return null;
+    }
+
+    @Override
+    public Void visitStringNullableLiteral(final GremlinParser.StringNullableLiteralContext ctx) {
+        // remove the first and last character (single or double quotes) but only if it is not null
+        if (ctx.getText().equals("null")) {
+            sb.append("None");
+        } else {
+            final String text = removeFirstAndLastCharacters(ctx.getText());
+            wrapTextInQuotes(text);
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitIntegerLiteral(final GremlinParser.IntegerLiteralContext ctx) {
+        String integerLiteral = ctx.getText().toLowerCase();
+
+        // check suffix
+        int lastCharIndex = integerLiteral.length() - 1;
+        char lastChar = integerLiteral.charAt(lastCharIndex);
+
+        // if the last character is not alphabetic then try to interpret the right type and append the suffix
+        if (!Character.isAlphabetic(lastChar)) {
+            final BigInteger bi = new BigInteger(integerLiteral);
+
+            // get explicit about long
+            if (bi.bitLength() > 32) {
+                integerLiteral = integerLiteral + "l";
+                lastChar = 'l';
+                lastCharIndex++;
+            }
+        }
+
+        switch (lastChar) {
+            case 'b':
+            case 's':
+            case 'i':
+            case 'n':
+                sb.append(integerLiteral, 0, lastCharIndex);
+                break;
+            case 'l':
+                sb.append("long(");
+                sb.append(integerLiteral, 0, lastCharIndex);
+                sb.append(")");
+                break;
+            default:
+                // everything else just goes as specified
+                sb.append(integerLiteral);
+                break;
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitFloatLiteral(final GremlinParser.FloatLiteralContext ctx) {
+        final String floatLiteral = ctx.getText().toLowerCase();
+
+        // check suffix
+        final int lastCharIndex = floatLiteral.length() - 1;
+        final char lastChar = floatLiteral.charAt(lastCharIndex);
+        switch (lastChar) {
+            case 'm':
+            case 'f':
+            case 'd':
+                sb.append(floatLiteral, 0, lastCharIndex);
+                break;
+            default:
+                // everything else just goes as specified
+                sb.append(floatLiteral);
+                break;
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitGenericLiteralRange(final GremlinParser.GenericLiteralRangeContext ctx) {
+        throw new TranslatorException("Python does not support range literals");
+    }
+
+    @Override
+    public Void visitGenericLiteralCollection(final GremlinParser.GenericLiteralCollectionContext ctx) {
+        sb.append("[");
+        for (int i = 0; i < ctx.genericLiteral().size(); i++) {
+            final GremlinParser.GenericLiteralContext genericLiteralContext = ctx.genericLiteral(i);
+            visit(genericLiteralContext);
+            if (i < ctx.genericLiteral().size() - 1)
+                sb.append(", ");
+        }
+        sb.append("]");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalCardinality(final GremlinParser.TraversalCardinalityContext ctx) {
+        // handle the enum style of cardinality if there is one child, otherwise it's the function call style
+        if (ctx.getChildCount() == 1)
+            appendExplicitNaming(ctx.getText(), VertexProperty.Cardinality.class.getSimpleName());
+        else {
+            String txt = ctx.getChild(0).getText();
+            if (txt.startsWith("Cardinality.")) {
+                txt = txt.replaceFirst("Cardinality.", "");
+            }
+            appendExplicitNaming(txt, "CardinalityValue");
+            appendStepOpen();
+            visit(ctx.getChild(2));
+            appendStepClose();
+        }
+
+        return null;
+    }
+
+    @Override
+    protected String processGremlinSymbol(final String step) {
+        return SymbolHelper.toPython(step);
+    }
+
+    private void wrapTextInQuotes(final String text) {
+        sb.append("'");
+        sb.append(text);
+        sb.append("'");
+    }
+
+    private Void appendStrategyArguments(final ParseTree ctx) {
+        sb.append(SymbolHelper.toPython(ctx.getChild(0).getText())).append("=");
+        visit(ctx.getChild(2));
+        return null;
+    }
+
+    static final class SymbolHelper {
+
+        private final static Map<String, String> TO_PYTHON_MAP = new HashMap<>();
+        private final static Map<String, String> FROM_PYTHON_MAP = new HashMap<>();
+
+        static {
+            TO_PYTHON_MAP.put("global", "global_");
+            TO_PYTHON_MAP.put("all", "all_");
+            TO_PYTHON_MAP.put("and", "and_");
+            TO_PYTHON_MAP.put("any", "any_");
+            TO_PYTHON_MAP.put("as", "as_");
+            TO_PYTHON_MAP.put("filter", "filter_");
+            TO_PYTHON_MAP.put("format", "format_");
+            TO_PYTHON_MAP.put("from", "from_");
+            TO_PYTHON_MAP.put("id", "id_");
+            TO_PYTHON_MAP.put("in", "in_");
+            TO_PYTHON_MAP.put("is", "is_");
+            TO_PYTHON_MAP.put("list", "list_");
+            TO_PYTHON_MAP.put("max", "max_");
+            TO_PYTHON_MAP.put("min", "min_");
+            TO_PYTHON_MAP.put("or", "or_");
+            TO_PYTHON_MAP.put("not", "not_");
+            TO_PYTHON_MAP.put("range", "range_");
+            TO_PYTHON_MAP.put("set", "set_");
+            TO_PYTHON_MAP.put("sum", "sum_");
+            TO_PYTHON_MAP.put("with", "with_");
+            //
+            TO_PYTHON_MAP.forEach((k, v) -> FROM_PYTHON_MAP.put(v, k));
+        }
+
+        private SymbolHelper() {
+            // static methods only, do not instantiate
+        }
+
+        public static String toPython(final String symbol) {
+            return TO_PYTHON_MAP.getOrDefault(symbol, convertCamelCaseToSnakeCase(symbol));
+        }
+
+        public static String convertCamelCaseToSnakeCase(final String camelCase) {
+            if (camelCase == null || camelCase.isEmpty())
+                return camelCase;
+
+            // skip if this is a class/enum indicated by the first letter being upper case
+            if (Character.isUpperCase(camelCase.charAt(0)))
+                return camelCase;
+
+            final StringBuilder sb = new StringBuilder();
+            for (int i = 0; i < camelCase.length(); i++) {
+                final char c = camelCase.charAt(i);
+                if (Character.isUpperCase(c)) {
+                    sb.append("_");
+                    sb.append(Character.toLowerCase(c));
+                } else {
+                    sb.append(c);
+                }
+            }
+            return sb.toString();
+        }
+
+        public static String toJava(final String symbol) {
+            return FROM_PYTHON_MAP.getOrDefault(symbol, symbol);
+        }
+
+    }
+
+}
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslateVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslateVisitor.java
new file mode 100644
index 0000000000..cffaa24f34
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslateVisitor.java
@@ -0,0 +1,2359 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.language.translator;
+
+import org.antlr.v4.runtime.ParserRuleContext;
+import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
+import org.antlr.v4.runtime.tree.TerminalNode;
+import org.apache.tinkerpop.gremlin.language.grammar.GremlinParser;
+import org.apache.tinkerpop.gremlin.language.grammar.GremlinVisitor;
+import org.apache.tinkerpop.gremlin.process.traversal.DT;
+import org.apache.tinkerpop.gremlin.process.traversal.Merge;
+import org.apache.tinkerpop.gremlin.process.traversal.Operator;
+import org.apache.tinkerpop.gremlin.process.traversal.Order;
+import org.apache.tinkerpop.gremlin.process.traversal.P;
+import org.apache.tinkerpop.gremlin.process.traversal.Pick;
+import org.apache.tinkerpop.gremlin.process.traversal.Pop;
+import org.apache.tinkerpop.gremlin.process.traversal.Scope;
+import org.apache.tinkerpop.gremlin.process.traversal.TextP;
+import org.apache.tinkerpop.gremlin.structure.Column;
+import org.apache.tinkerpop.gremlin.structure.Direction;
+import org.apache.tinkerpop.gremlin.structure.T;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * A Gremlin to Gremlin translator. Makes no changes to input except:
+ * <ul>
+ *     <li>Normalizes whitespace</li>
+ *     <li>Makes anonymous traversals explicit with double underscore</li>
+ *     <li>Makes enums explicit with their proper name</li>
+ * </ul>
+ *
+ */
+public class TranslateVisitor extends AbstractParseTreeVisitor<Void> implements GremlinVisitor<Void> {
+
+    protected final String graphTraversalSourceName;
+
+    protected final StringBuilder sb = new StringBuilder();
+
+    protected final Set<String> parameters = new HashSet<>();
+
+    public TranslateVisitor() {
+        this("g");
+    }
+
+    public TranslateVisitor(final String graphTraversalSourceName) {
+        this.graphTraversalSourceName = graphTraversalSourceName;
+    }
+
+    public String getTranslated() {
+        return sb.toString();
+    }
+
+    public Set<String> getParameters() {
+        return parameters;
+    }
+
+    protected String processGremlinSymbol(final String step) {
+        return step;
+    }
+
+    protected void appendArgumentSeparator() {
+        sb.append(", ");
+    }
+
+    protected void appendStepSeparator() {
+        sb.append(".");
+    }
+
+    protected void appendStepOpen() {
+        sb.append("(");
+    }
+
+    protected void appendStepClose() {
+        sb.append(")");
+    }
+
+    protected static String removeFirstAndLastCharacters(final String text) {
+        return text != null && !text.isEmpty() ? text.substring(1, text.length() - 1) : "";
+    }
+
+    @Override
+    public Void visitQueryList(final GremlinParser.QueryListContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitQuery(final GremlinParser.QueryContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitEmptyQuery(final GremlinParser.EmptyQueryContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSource(final GremlinParser.TraversalSourceContext ctx) {
+        // replace "g" with whatever the user wanted to use as the graph traversal source name
+        sb.append(graphTraversalSourceName);
+
+        // child counts more than 1 means there is a step separator and a traversal source method
+        if (ctx.getChildCount() > 1) {
+            if (ctx.getChild(0).getChildCount() > 1) {
+                appendStepSeparator();
+                visitTraversalSourceSelfMethod((GremlinParser.TraversalSourceSelfMethodContext) ctx.getChild(0).getChild(2));
+            }
+            appendStepSeparator();
+            visitTraversalSourceSelfMethod((GremlinParser.TraversalSourceSelfMethodContext) ctx.getChild(2));
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitTransactionPart(final GremlinParser.TransactionPartContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitRootTraversal(final GremlinParser.RootTraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSelfMethod(final GremlinParser.TraversalSourceSelfMethodContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSelfMethod_withBulk(final GremlinParser.TraversalSourceSelfMethod_withBulkContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSelfMethod_withPath(final GremlinParser.TraversalSourceSelfMethod_withPathContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSelfMethod_withSack(final GremlinParser.TraversalSourceSelfMethod_withSackContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSelfMethod_withSideEffect(final GremlinParser.TraversalSourceSelfMethod_withSideEffectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSelfMethod_withStrategies(final GremlinParser.TraversalSourceSelfMethod_withStrategiesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSelfMethod_with(final GremlinParser.TraversalSourceSelfMethod_withContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod(final GremlinParser.TraversalSourceSpawnMethodContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_addE(final GremlinParser.TraversalSourceSpawnMethod_addEContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_addV(final GremlinParser.TraversalSourceSpawnMethod_addVContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_E(final GremlinParser.TraversalSourceSpawnMethod_EContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_V(final GremlinParser.TraversalSourceSpawnMethod_VContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_inject(final GremlinParser.TraversalSourceSpawnMethod_injectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_io(final GremlinParser.TraversalSourceSpawnMethod_ioContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_mergeV_Map(final GremlinParser.TraversalSourceSpawnMethod_mergeV_MapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_mergeV_Traversal(final GremlinParser.TraversalSourceSpawnMethod_mergeV_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_mergeE_Map(final GremlinParser.TraversalSourceSpawnMethod_mergeE_MapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_mergeE_Traversal(final GremlinParser.TraversalSourceSpawnMethod_mergeE_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_call_empty(final GremlinParser.TraversalSourceSpawnMethod_call_emptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_call_string(final GremlinParser.TraversalSourceSpawnMethod_call_stringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_call_string_map(final GremlinParser.TraversalSourceSpawnMethod_call_string_mapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_call_string_traversal(final GremlinParser.TraversalSourceSpawnMethod_call_string_traversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_call_string_map_traversal(final GremlinParser.TraversalSourceSpawnMethod_call_string_map_traversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSourceSpawnMethod_union(final GremlinParser.TraversalSourceSpawnMethod_unionContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitChainedTraversal(final GremlinParser.ChainedTraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitChainedParentOfGraphTraversal(final GremlinParser.ChainedParentOfGraphTraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitNestedTraversal(final GremlinParser.NestedTraversalContext ctx) {
+        if (!ctx.getChild(0).getText().equals("__"))
+            sb.append("__.");
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTerminatedTraversal(final GremlinParser.TerminatedTraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod(final GremlinParser.TraversalMethodContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_V(final GremlinParser.TraversalMethod_VContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_E(final GremlinParser.TraversalMethod_EContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_addE_String(final GremlinParser.TraversalMethod_addE_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_addE_Traversal(final GremlinParser.TraversalMethod_addE_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_addV_Empty(final GremlinParser.TraversalMethod_addV_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_addV_String(final GremlinParser.TraversalMethod_addV_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_addV_Traversal(final GremlinParser.TraversalMethod_addV_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_mergeV_empty(final GremlinParser.TraversalMethod_mergeV_emptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_mergeV_Map(final GremlinParser.TraversalMethod_mergeV_MapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_mergeV_Traversal(final GremlinParser.TraversalMethod_mergeV_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_mergeE_empty(final GremlinParser.TraversalMethod_mergeE_emptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_mergeE_Map(final GremlinParser.TraversalMethod_mergeE_MapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_mergeE_Traversal(final GremlinParser.TraversalMethod_mergeE_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_aggregate_Scope_String(final GremlinParser.TraversalMethod_aggregate_Scope_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_aggregate_String(final GremlinParser.TraversalMethod_aggregate_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_all_P(final GremlinParser.TraversalMethod_all_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_and(final GremlinParser.TraversalMethod_andContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_any_P(final GremlinParser.TraversalMethod_any_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_as(final GremlinParser.TraversalMethod_asContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_barrier_Consumer(final GremlinParser.TraversalMethod_barrier_ConsumerContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_barrier_Empty(final GremlinParser.TraversalMethod_barrier_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_barrier_int(final GremlinParser.TraversalMethod_barrier_intContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_both(final GremlinParser.TraversalMethod_bothContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_bothE(final GremlinParser.TraversalMethod_bothEContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_bothV(final GremlinParser.TraversalMethod_bothVContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_branch(final GremlinParser.TraversalMethod_branchContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_by_Comparator(final GremlinParser.TraversalMethod_by_ComparatorContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_by_Empty(final GremlinParser.TraversalMethod_by_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_by_Function(final GremlinParser.TraversalMethod_by_FunctionContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_by_Function_Comparator(final GremlinParser.TraversalMethod_by_Function_ComparatorContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_by_Order(final GremlinParser.TraversalMethod_by_OrderContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_by_String(final GremlinParser.TraversalMethod_by_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_by_String_Comparator(final GremlinParser.TraversalMethod_by_String_ComparatorContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_by_T(final GremlinParser.TraversalMethod_by_TContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_by_Traversal(final GremlinParser.TraversalMethod_by_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_by_Traversal_Comparator(final GremlinParser.TraversalMethod_by_Traversal_ComparatorContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_cap(final GremlinParser.TraversalMethod_capContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_choose_Function(final GremlinParser.TraversalMethod_choose_FunctionContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_choose_Predicate_Traversal(final GremlinParser.TraversalMethod_choose_Predicate_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_choose_Predicate_Traversal_Traversal(final GremlinParser.TraversalMethod_choose_Predicate_Traversal_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_choose_Traversal(final GremlinParser.TraversalMethod_choose_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_choose_Traversal_Traversal(final GremlinParser.TraversalMethod_choose_Traversal_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_choose_Traversal_Traversal_Traversal(final GremlinParser.TraversalMethod_choose_Traversal_Traversal_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_coalesce(final GremlinParser.TraversalMethod_coalesceContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_coin(final GremlinParser.TraversalMethod_coinContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_combine_Object(final GremlinParser.TraversalMethod_combine_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_connectedComponent(final GremlinParser.TraversalMethod_connectedComponentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_constant(final GremlinParser.TraversalMethod_constantContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_count_Empty(final GremlinParser.TraversalMethod_count_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_count_Scope(final GremlinParser.TraversalMethod_count_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_cyclicPath(final GremlinParser.TraversalMethod_cyclicPathContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_dedup_Scope_String(final GremlinParser.TraversalMethod_dedup_Scope_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_dedup_String(final GremlinParser.TraversalMethod_dedup_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_difference_Object(final GremlinParser.TraversalMethod_difference_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_disjunct_Object(final GremlinParser.TraversalMethod_disjunct_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_drop(final GremlinParser.TraversalMethod_dropContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_elementMap(final GremlinParser.TraversalMethod_elementMapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_emit_Empty(final GremlinParser.TraversalMethod_emit_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_emit_Predicate(final GremlinParser.TraversalMethod_emit_PredicateContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_emit_Traversal(final GremlinParser.TraversalMethod_emit_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_filter_Predicate(final GremlinParser.TraversalMethod_filter_PredicateContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_filter_Traversal(final GremlinParser.TraversalMethod_filter_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_flatMap(final GremlinParser.TraversalMethod_flatMapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_fold_Empty(final GremlinParser.TraversalMethod_fold_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_fold_Object_BiFunction(final GremlinParser.TraversalMethod_fold_Object_BiFunctionContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_from_String(final GremlinParser.TraversalMethod_from_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_from_Vertex(final GremlinParser.TraversalMethod_from_VertexContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_from_Traversal(final GremlinParser.TraversalMethod_from_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_group_Empty(final GremlinParser.TraversalMethod_group_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_group_String(final GremlinParser.TraversalMethod_group_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_groupCount_Empty(final GremlinParser.TraversalMethod_groupCount_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_groupCount_String(final GremlinParser.TraversalMethod_groupCount_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_has_String(final GremlinParser.TraversalMethod_has_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_has_String_Object(final GremlinParser.TraversalMethod_has_String_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_has_String_P(final GremlinParser.TraversalMethod_has_String_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_has_String_String_Object(final GremlinParser.TraversalMethod_has_String_String_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_has_String_String_P(final GremlinParser.TraversalMethod_has_String_String_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_has_String_Traversal(final GremlinParser.TraversalMethod_has_String_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_has_T_Object(final GremlinParser.TraversalMethod_has_T_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_has_T_P(final GremlinParser.TraversalMethod_has_T_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_has_T_Traversal(final GremlinParser.TraversalMethod_has_T_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_hasId_Object_Object(final GremlinParser.TraversalMethod_hasId_Object_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_hasId_P(final GremlinParser.TraversalMethod_hasId_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_hasKey_P(final GremlinParser.TraversalMethod_hasKey_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_hasKey_String_String(final GremlinParser.TraversalMethod_hasKey_String_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_hasLabel_P(final GremlinParser.TraversalMethod_hasLabel_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_hasLabel_String_String(final GremlinParser.TraversalMethod_hasLabel_String_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_hasNot(final GremlinParser.TraversalMethod_hasNotContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_hasValue_Object_Object(final GremlinParser.TraversalMethod_hasValue_Object_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_hasValue_P(final GremlinParser.TraversalMethod_hasValue_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_id(final GremlinParser.TraversalMethod_idContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_identity(final GremlinParser.TraversalMethod_identityContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_in(final GremlinParser.TraversalMethod_inContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_inE(final GremlinParser.TraversalMethod_inEContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_intersect_Object(final GremlinParser.TraversalMethod_intersect_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_inV(final GremlinParser.TraversalMethod_inVContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_index(final GremlinParser.TraversalMethod_indexContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_inject(final GremlinParser.TraversalMethod_injectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_is_Object(final GremlinParser.TraversalMethod_is_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_is_P(final GremlinParser.TraversalMethod_is_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_conjoin_String(final GremlinParser.TraversalMethod_conjoin_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_key(final GremlinParser.TraversalMethod_keyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_label(final GremlinParser.TraversalMethod_labelContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_limit_Scope_long(final GremlinParser.TraversalMethod_limit_Scope_longContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_limit_long(final GremlinParser.TraversalMethod_limit_longContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_local(final GremlinParser.TraversalMethod_localContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_loops_Empty(final GremlinParser.TraversalMethod_loops_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_loops_String(final GremlinParser.TraversalMethod_loops_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_map(final GremlinParser.TraversalMethod_mapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_match(final GremlinParser.TraversalMethod_matchContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_math(final GremlinParser.TraversalMethod_mathContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_max_Empty(final GremlinParser.TraversalMethod_max_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_max_Scope(final GremlinParser.TraversalMethod_max_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_mean_Empty(final GremlinParser.TraversalMethod_mean_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_mean_Scope(final GremlinParser.TraversalMethod_mean_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_merge_Object(final GremlinParser.TraversalMethod_merge_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_min_Empty(final GremlinParser.TraversalMethod_min_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_min_Scope(final GremlinParser.TraversalMethod_min_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_not(final GremlinParser.TraversalMethod_notContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_option_Predicate_Traversal(final GremlinParser.TraversalMethod_option_Predicate_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_option_Merge_Map(final GremlinParser.TraversalMethod_option_Merge_MapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_option_Merge_Map_Cardinality(final GremlinParser.TraversalMethod_option_Merge_Map_CardinalityContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_option_Merge_Traversal(final GremlinParser.TraversalMethod_option_Merge_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_option_Object_Traversal(final GremlinParser.TraversalMethod_option_Object_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_option_Traversal(final GremlinParser.TraversalMethod_option_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_optional(final GremlinParser.TraversalMethod_optionalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_or(final GremlinParser.TraversalMethod_orContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_order_Empty(final GremlinParser.TraversalMethod_order_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_order_Scope(final GremlinParser.TraversalMethod_order_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_otherV(final GremlinParser.TraversalMethod_otherVContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_out(final GremlinParser.TraversalMethod_outContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_outE(final GremlinParser.TraversalMethod_outEContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_outV(final GremlinParser.TraversalMethod_outVContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_pageRank_Empty(final GremlinParser.TraversalMethod_pageRank_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_pageRank_double(final GremlinParser.TraversalMethod_pageRank_doubleContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_path(final GremlinParser.TraversalMethod_pathContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_peerPressure(final GremlinParser.TraversalMethod_peerPressureContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_product_Object(final GremlinParser.TraversalMethod_product_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_profile_Empty(final GremlinParser.TraversalMethod_profile_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_profile_String(final GremlinParser.TraversalMethod_profile_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_project(final GremlinParser.TraversalMethod_projectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_properties(final GremlinParser.TraversalMethod_propertiesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_property_Cardinality_Object_Object_Object(final GremlinParser.TraversalMethod_property_Cardinality_Object_Object_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_property_Object_Object_Object(final GremlinParser.TraversalMethod_property_Object_Object_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_property_Object(final GremlinParser.TraversalMethod_property_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_property_Cardinality_Object(final GremlinParser.TraversalMethod_property_Cardinality_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_propertyMap(final GremlinParser.TraversalMethod_propertyMapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_range_Scope_long_long(final GremlinParser.TraversalMethod_range_Scope_long_longContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_range_long_long(final GremlinParser.TraversalMethod_range_long_longContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_read(final GremlinParser.TraversalMethod_readContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_repeat_String_Traversal(final GremlinParser.TraversalMethod_repeat_String_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_repeat_Traversal(final GremlinParser.TraversalMethod_repeat_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_reverse_Empty(final GremlinParser.TraversalMethod_reverse_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_sack_BiFunction(final GremlinParser.TraversalMethod_sack_BiFunctionContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_sack_Empty(final GremlinParser.TraversalMethod_sack_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_sample_Scope_int(final GremlinParser.TraversalMethod_sample_Scope_intContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_sample_int(final GremlinParser.TraversalMethod_sample_intContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_select_Column(final GremlinParser.TraversalMethod_select_ColumnContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_select_Pop_String(final GremlinParser.TraversalMethod_select_Pop_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_select_Pop_String_String_String(final GremlinParser.TraversalMethod_select_Pop_String_String_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_select_Pop_Traversal(final GremlinParser.TraversalMethod_select_Pop_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_select_String(final GremlinParser.TraversalMethod_select_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_select_String_String_String(final GremlinParser.TraversalMethod_select_String_String_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_select_Traversal(final GremlinParser.TraversalMethod_select_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_shortestPath(final GremlinParser.TraversalMethod_shortestPathContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_sideEffect(final GremlinParser.TraversalMethod_sideEffectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_simplePath(final GremlinParser.TraversalMethod_simplePathContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_skip_Scope_long(final GremlinParser.TraversalMethod_skip_Scope_longContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_skip_long(final GremlinParser.TraversalMethod_skip_longContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_store(final GremlinParser.TraversalMethod_storeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_subgraph(final GremlinParser.TraversalMethod_subgraphContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_sum_Empty(final GremlinParser.TraversalMethod_sum_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_sum_Scope(final GremlinParser.TraversalMethod_sum_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_tail_Empty(final GremlinParser.TraversalMethod_tail_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_tail_Scope(final GremlinParser.TraversalMethod_tail_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_tail_Scope_long(final GremlinParser.TraversalMethod_tail_Scope_longContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_tail_long(final GremlinParser.TraversalMethod_tail_longContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_fail_Empty(final GremlinParser.TraversalMethod_fail_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_fail_String(final GremlinParser.TraversalMethod_fail_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_timeLimit(final GremlinParser.TraversalMethod_timeLimitContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_times(final GremlinParser.TraversalMethod_timesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_to_Direction_String(final GremlinParser.TraversalMethod_to_Direction_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_to_String(final GremlinParser.TraversalMethod_to_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_to_Vertex(final GremlinParser.TraversalMethod_to_VertexContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_to_Traversal(final GremlinParser.TraversalMethod_to_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_toE(final GremlinParser.TraversalMethod_toEContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_toV(final GremlinParser.TraversalMethod_toVContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_tree_Empty(final GremlinParser.TraversalMethod_tree_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_tree_String(final GremlinParser.TraversalMethod_tree_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_unfold(final GremlinParser.TraversalMethod_unfoldContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_union(final GremlinParser.TraversalMethod_unionContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_until_Predicate(final GremlinParser.TraversalMethod_until_PredicateContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_until_Traversal(final GremlinParser.TraversalMethod_until_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_value(final GremlinParser.TraversalMethod_valueContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_valueMap_String(final GremlinParser.TraversalMethod_valueMap_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_valueMap_boolean_String(final GremlinParser.TraversalMethod_valueMap_boolean_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_values(final GremlinParser.TraversalMethod_valuesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_where_P(final GremlinParser.TraversalMethod_where_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_where_String_P(final GremlinParser.TraversalMethod_where_String_PContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_where_Traversal(final GremlinParser.TraversalMethod_where_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_with_String(final GremlinParser.TraversalMethod_with_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_with_String_Object(final GremlinParser.TraversalMethod_with_String_ObjectContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_write(final GremlinParser.TraversalMethod_writeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_element(final GremlinParser.TraversalMethod_elementContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_call_string(final GremlinParser.TraversalMethod_call_stringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_call_string_map(final GremlinParser.TraversalMethod_call_string_mapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_call_string_traversal(final GremlinParser.TraversalMethod_call_string_traversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_call_string_map_traversal(final GremlinParser.TraversalMethod_call_string_map_traversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_concat_Traversal_Traversal(final GremlinParser.TraversalMethod_concat_Traversal_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_concat_String(final GremlinParser.TraversalMethod_concat_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_asString_Empty(final GremlinParser.TraversalMethod_asString_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_asString_Scope(final GremlinParser.TraversalMethod_asString_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_format_String(final GremlinParser.TraversalMethod_format_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_toUpper_Empty(final GremlinParser.TraversalMethod_toUpper_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_toUpper_Scope(final GremlinParser.TraversalMethod_toUpper_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_toLower_Empty(final GremlinParser.TraversalMethod_toLower_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_toLower_Scope(final GremlinParser.TraversalMethod_toLower_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_length_Empty(final GremlinParser.TraversalMethod_length_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_length_Scope(final GremlinParser.TraversalMethod_length_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_trim_Empty(final GremlinParser.TraversalMethod_trim_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_trim_Scope(final GremlinParser.TraversalMethod_trim_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_lTrim_Empty(final GremlinParser.TraversalMethod_lTrim_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_lTrim_Scope(final GremlinParser.TraversalMethod_lTrim_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_rTrim_Empty(final GremlinParser.TraversalMethod_rTrim_EmptyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_rTrim_Scope(final GremlinParser.TraversalMethod_rTrim_ScopeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_replace_String_String(final GremlinParser.TraversalMethod_replace_String_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_replace_Scope_String_String(final GremlinParser.TraversalMethod_replace_Scope_String_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_split_String(final GremlinParser.TraversalMethod_split_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_split_Scope_String(final GremlinParser.TraversalMethod_split_Scope_StringContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_substring_int(final GremlinParser.TraversalMethod_substring_intContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_substring_Scope_int(final GremlinParser.TraversalMethod_substring_Scope_intContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_substring_int_int(final GremlinParser.TraversalMethod_substring_int_intContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_substring_Scope_int_int(final GremlinParser.TraversalMethod_substring_Scope_int_intContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_asDate(final GremlinParser.TraversalMethod_asDateContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_dateAdd(final GremlinParser.TraversalMethod_dateAddContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_dateDiff_Traversal(final GremlinParser.TraversalMethod_dateDiff_TraversalContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_dateDiff_Date(final GremlinParser.TraversalMethod_dateDiff_DateContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitStructureVertex(final GremlinParser.StructureVertexContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategy(final GremlinParser.TraversalStrategyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_ProductiveByStrategy(final GremlinParser.TraversalStrategyArgs_ProductiveByStrategyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_PartitionStrategy(final GremlinParser.TraversalStrategyArgs_PartitionStrategyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_SubgraphStrategy(final GremlinParser.TraversalStrategyArgs_SubgraphStrategyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_EdgeLabelVerificationStrategy(final GremlinParser.TraversalStrategyArgs_EdgeLabelVerificationStrategyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_ReservedKeysVerificationStrategy(final GremlinParser.TraversalStrategyArgs_ReservedKeysVerificationStrategyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyArgs_SeedStrategy(final GremlinParser.TraversalStrategyArgs_SeedStrategyContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalScope(final GremlinParser.TraversalScopeContext ctx) {
+        appendExplicitNaming(ctx.getText(), Scope.class.getSimpleName());
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalToken(final GremlinParser.TraversalTokenContext ctx) {
+        appendExplicitNaming(ctx.getText(), T.class.getSimpleName());
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalMerge(final GremlinParser.TraversalMergeContext ctx) {
+        appendExplicitNaming(ctx.getText(), Merge.class.getSimpleName());
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalOrder(final GremlinParser.TraversalOrderContext ctx) {
+        appendExplicitNaming(ctx.getText(), Order.class.getSimpleName());
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalDirection(final GremlinParser.TraversalDirectionContext ctx) {
+        appendExplicitNaming(ctx.getText(), Direction.class.getSimpleName());
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalCardinality(final GremlinParser.TraversalCardinalityContext ctx) {
+        // handle the enum style of cardinality if there is one child, otherwise it's the function call style
+        if (ctx.getChildCount() == 1)
+            appendExplicitNaming(ctx.getText(), Cardinality.class.getSimpleName());
+        else {
+            appendExplicitNaming(ctx.getChild(0).getText(), Cardinality.class.getSimpleName());
+            appendStepOpen();
+            visit(ctx.getChild(2));
+            appendStepClose();
+        }
+
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalColumn(final GremlinParser.TraversalColumnContext ctx) {
+        appendExplicitNaming(ctx.getText(), Column.class.getSimpleName());
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPop(final GremlinParser.TraversalPopContext ctx) {
+        appendExplicitNaming(ctx.getText(), Pop.class.getSimpleName());
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalOperator(final GremlinParser.TraversalOperatorContext ctx) {
+        appendExplicitNaming(ctx.getText(), Operator.class.getSimpleName());
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPick(final GremlinParser.TraversalPickContext ctx) {
+        appendExplicitNaming(ctx.getText(), Pick.class.getSimpleName());
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalDT(final GremlinParser.TraversalDTContext ctx) {
+        appendExplicitNaming(ctx.getText(), DT.class.getSimpleName());
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate(final GremlinParser.TraversalPredicateContext ctx) {
+        switch(ctx.getChildCount()) {
+            case 1:
+                // handle simple predicate
+                visit(ctx.getChild(0));
+                break;
+            case 5:
+                // handle negate of P
+                visit(ctx.getChild(0));
+                sb.append(".").append(processGremlinSymbol("negate")).append("()");
+                break;
+            case 6:
+                // handle and/or predicates
+                final int childIndexOfParameterOperator = 2;
+                final int childIndexOfCaller = 0;
+                final int childIndexOfArgument = 4;
+
+                visit(ctx.getChild(childIndexOfCaller));
+                sb.append(".").append(processGremlinSymbol(ctx.getChild(childIndexOfParameterOperator).getText())).append("(");
+                visit(ctx.getChild(childIndexOfArgument));
+                sb.append(")");
+                break;
+        }
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalTerminalMethod(final GremlinParser.TraversalTerminalMethodContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSackMethod(final GremlinParser.TraversalSackMethodContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSelfMethod(final GremlinParser.TraversalSelfMethodContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalComparator(final GremlinParser.TraversalComparatorContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalFunction(final GremlinParser.TraversalFunctionContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalBiFunction(final GremlinParser.TraversalBiFunctionContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalPredicate_eq(final GremlinParser.TraversalPredicate_eqContext ctx) {
+        visitP(ctx, P.class, "eq");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_neq(final GremlinParser.TraversalPredicate_neqContext ctx) {
+        visitP(ctx, P.class, "neq");
+        return null;
+    }
+
+    private void visitP(final ParserRuleContext ctx, final Class<?> clazzOfP, final String methodName) {
+        sb.append(clazzOfP.getSimpleName());
+        appendStepSeparator();
+        sb.append(processGremlinSymbol(methodName));
+        appendStepOpen();
+
+        // if there are commas then there are multiple arguments that are being handled literally e.g. between
+        final long commas = ctx.children.stream().filter(t -> t instanceof TerminalNode && t.getText().equals(",")).count();
+        if (commas > 0) {
+            // the number of commas indicates how many arguments there are. for each argument, visit the child
+            for (int ix = 0; ix < (commas * 2) + 1; ix+=2) {
+                visit(ctx.getChild(ix + 2));
+                if (ix < commas) {
+                    appendArgumentSeparator();
+                }
+            }
+        } else {
+            // there is only one argument, visit the child
+            if (ctx.getChildCount() > 3)
+                visit(ctx.getChild(2));
+        }
+        appendStepClose();
+    }
+
+    @Override
+    public Void visitTraversalPredicate_lt(final GremlinParser.TraversalPredicate_ltContext ctx) {
+        visitP(ctx, P.class, "lt");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_lte(final GremlinParser.TraversalPredicate_lteContext ctx) {
+        visitP(ctx, P.class, "lte");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_gt(final GremlinParser.TraversalPredicate_gtContext ctx) {
+        visitP(ctx, P.class, "gt");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_gte(final GremlinParser.TraversalPredicate_gteContext ctx) {
+        visitP(ctx, P.class, "gte");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_inside(final GremlinParser.TraversalPredicate_insideContext ctx) {
+        visitP(ctx, P.class, "inside");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_outside(final GremlinParser.TraversalPredicate_outsideContext ctx) {
+        visitP(ctx, P.class, "outside");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_between(final GremlinParser.TraversalPredicate_betweenContext ctx) {
+        visitP(ctx, P.class, "between");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_within(final GremlinParser.TraversalPredicate_withinContext ctx) {
+        visitP(ctx, P.class, "within");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_without(final GremlinParser.TraversalPredicate_withoutContext ctx) {
+        visitP(ctx, P.class, "without");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_not(final GremlinParser.TraversalPredicate_notContext ctx) {
+        visitP(ctx, P.class, "not");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_containing(final GremlinParser.TraversalPredicate_containingContext ctx) {
+        visitP(ctx, TextP.class, "containing");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_notContaining(final GremlinParser.TraversalPredicate_notContainingContext ctx) {
+        visitP(ctx, TextP.class, "notContaining");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_startingWith(final GremlinParser.TraversalPredicate_startingWithContext ctx) {
+        visitP(ctx, TextP.class, "startingWith");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_notStartingWith(final GremlinParser.TraversalPredicate_notStartingWithContext ctx) {
+        visitP(ctx, TextP.class, "notStartingWith");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_endingWith(final GremlinParser.TraversalPredicate_endingWithContext ctx) {
+        visitP(ctx, TextP.class, "endingWith");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_notEndingWith(final GremlinParser.TraversalPredicate_notEndingWithContext ctx) {
+        visitP(ctx, TextP.class, "notEndingWith");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_regex(final GremlinParser.TraversalPredicate_regexContext ctx) {
+        visitP(ctx, TextP.class, "regex");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalPredicate_notRegex(final GremlinParser.TraversalPredicate_notRegexContext ctx) {
+        visitP(ctx, TextP.class, "notRegex");
+        return null;
+    }
+
+    @Override
+    public Void visitTraversalTerminalMethod_explain(final GremlinParser.TraversalTerminalMethod_explainContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalTerminalMethod_hasNext(final GremlinParser.TraversalTerminalMethod_hasNextContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalTerminalMethod_iterate(final GremlinParser.TraversalTerminalMethod_iterateContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalTerminalMethod_tryNext(final GremlinParser.TraversalTerminalMethod_tryNextContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalTerminalMethod_next(final GremlinParser.TraversalTerminalMethod_nextContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalTerminalMethod_toList(final GremlinParser.TraversalTerminalMethod_toListContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalTerminalMethod_toSet(final GremlinParser.TraversalTerminalMethod_toSetContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalTerminalMethod_toBulkSet(final GremlinParser.TraversalTerminalMethod_toBulkSetContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSelfMethod_none(final GremlinParser.TraversalSelfMethod_noneContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionKeys(final GremlinParser.WithOptionKeysContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitConnectedComponentConstants(final GremlinParser.ConnectedComponentConstantsContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitPageRankConstants(final GremlinParser.PageRankConstantsContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitPeerPressureConstants(final GremlinParser.PeerPressureConstantsContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitShortestPathConstants(final GremlinParser.ShortestPathConstantsContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsValues(final GremlinParser.WithOptionsValuesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitIoOptionsKeys(final GremlinParser.IoOptionsKeysContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitIoOptionsValues(final GremlinParser.IoOptionsValuesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitConnectedComponentConstants_component(final GremlinParser.ConnectedComponentConstants_componentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitConnectedComponentConstants_edges(final GremlinParser.ConnectedComponentConstants_edgesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitConnectedComponentConstants_propertyName(final GremlinParser.ConnectedComponentConstants_propertyNameContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitPageRankConstants_edges(final GremlinParser.PageRankConstants_edgesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitPageRankConstants_times(final GremlinParser.PageRankConstants_timesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitPageRankConstants_propertyName(final GremlinParser.PageRankConstants_propertyNameContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitPeerPressureConstants_edges(final GremlinParser.PeerPressureConstants_edgesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitPeerPressureConstants_times(final GremlinParser.PeerPressureConstants_timesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitPeerPressureConstants_propertyName(final GremlinParser.PeerPressureConstants_propertyNameContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitShortestPathConstants_target(final GremlinParser.ShortestPathConstants_targetContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitShortestPathConstants_edges(final GremlinParser.ShortestPathConstants_edgesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitShortestPathConstants_distance(final GremlinParser.ShortestPathConstants_distanceContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitShortestPathConstants_maxDistance(final GremlinParser.ShortestPathConstants_maxDistanceContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitShortestPathConstants_includeEdges(final GremlinParser.ShortestPathConstants_includeEdgesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsConstants_tokens(final GremlinParser.WithOptionsConstants_tokensContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsConstants_none(final GremlinParser.WithOptionsConstants_noneContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsConstants_ids(final GremlinParser.WithOptionsConstants_idsContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsConstants_labels(final GremlinParser.WithOptionsConstants_labelsContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsConstants_keys(final GremlinParser.WithOptionsConstants_keysContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsConstants_values(final GremlinParser.WithOptionsConstants_valuesContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsConstants_all(final GremlinParser.WithOptionsConstants_allContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsConstants_indexer(final GremlinParser.WithOptionsConstants_indexerContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsConstants_list(final GremlinParser.WithOptionsConstants_listContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsConstants_map(final GremlinParser.WithOptionsConstants_mapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitIoOptionsConstants_reader(final GremlinParser.IoOptionsConstants_readerContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitIoOptionsConstants_writer(final GremlinParser.IoOptionsConstants_writerContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitIoOptionsConstants_gryo(final GremlinParser.IoOptionsConstants_gryoContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitIoOptionsConstants_graphson(final GremlinParser.IoOptionsConstants_graphsonContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitIoOptionsConstants_graphml(final GremlinParser.IoOptionsConstants_graphmlContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitConnectedComponentStringConstant(final GremlinParser.ConnectedComponentStringConstantContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitPageRankStringConstant(final GremlinParser.PageRankStringConstantContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitPeerPressureStringConstant(final GremlinParser.PeerPressureStringConstantContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitShortestPathStringConstant(final GremlinParser.ShortestPathStringConstantContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitWithOptionsStringConstant(final GremlinParser.WithOptionsStringConstantContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitIoOptionsStringConstant(final GremlinParser.IoOptionsStringConstantContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitBooleanArgument(final GremlinParser.BooleanArgumentContext ctx) {
+        if (ctx.booleanLiteral() != null)
+            visitBooleanLiteral(ctx.booleanLiteral());
+        else
+            visitVariable(ctx.variable());
+
+        return null;
+    }
+
+    @Override
+    public Void visitIntegerArgument(final GremlinParser.IntegerArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitFloatArgument(final GremlinParser.FloatArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitStringArgument(final GremlinParser.StringArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitStringNullableArgument(final GremlinParser.StringNullableArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitDateArgument(final GremlinParser.DateArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralArgument(final GremlinParser.GenericLiteralArgumentContext ctx) {
+        if (ctx.genericLiteral() != null)
+            visitGenericLiteral(ctx.genericLiteral());
+        else
+            visitVariable(ctx.variable());
+
+        return null;
+    }
+
+    @Override
+    public Void visitGenericLiteralListArgument(final GremlinParser.GenericLiteralListArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralMapArgument(final GremlinParser.GenericLiteralMapArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralMapNullableArgument(final GremlinParser.GenericLiteralMapNullableArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitStructureVertexArgument(final GremlinParser.StructureVertexArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalCardinalityArgument(final GremlinParser.TraversalCardinalityArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalColumnArgument(final GremlinParser.TraversalColumnArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalDirectionArgument(final GremlinParser.TraversalDirectionArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMergeArgument(final GremlinParser.TraversalMergeArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalOrderArgument(final GremlinParser.TraversalOrderArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalPopArgument(final GremlinParser.TraversalPopArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalSackMethodArgument(final GremlinParser.TraversalSackMethodArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalScopeArgument(final GremlinParser.TraversalScopeArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalTokenArgument(final GremlinParser.TraversalTokenArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalComparatorArgument(final GremlinParser.TraversalComparatorArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalFunctionArgument(final GremlinParser.TraversalFunctionArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalBiFunctionArgument(final GremlinParser.TraversalBiFunctionArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalDTArgument(final GremlinParser.TraversalDTArgumentContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyList(final GremlinParser.TraversalStrategyListContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitTraversalStrategyExpr(final GremlinParser.TraversalStrategyExprContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitNestedTraversalList(final GremlinParser.NestedTraversalListContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitNestedTraversalExpr(final GremlinParser.NestedTraversalExprContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralVarargs(final GremlinParser.GenericLiteralVarargsContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralList(final GremlinParser.GenericLiteralListContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralExpr(final GremlinParser.GenericLiteralExprContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralRange(final GremlinParser.GenericLiteralRangeContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralCollection(final GremlinParser.GenericLiteralCollectionContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitStringLiteralVarargs(final GremlinParser.StringLiteralVarargsContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitStringLiteralList(final GremlinParser.StringLiteralListContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitStringLiteralExpr(final GremlinParser.StringLiteralExprContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteral(final GremlinParser.GenericLiteralContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitGenericLiteralMap(final GremlinParser.GenericLiteralMapContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitMapEntry(final GremlinParser.MapEntryContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitStringLiteral(final GremlinParser.StringLiteralContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitStringNullableLiteral(final GremlinParser.StringNullableLiteralContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitIntegerLiteral(final GremlinParser.IntegerLiteralContext ctx) {
+        sb.append(ctx.getText());
+        return null;
+    }
+
+    @Override
+    public Void visitFloatLiteral(final GremlinParser.FloatLiteralContext ctx) {
+        sb.append(ctx.getText());
+        return null;
+    }
+
+    @Override
+    public Void visitNumericLiteral(final GremlinParser.NumericLiteralContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitBooleanLiteral(final GremlinParser.BooleanLiteralContext ctx) {
+        sb.append(ctx.getText());
+        return null;
+    }
+
+    @Override
+    public Void visitDateLiteral(final GremlinParser.DateLiteralContext ctx) {
+        return visitChildren(ctx);
+    }
+
+    @Override
+    public Void visitNullLiteral(final GremlinParser.NullLiteralContext ctx) {
+        sb.append(ctx.getText());
+        return null;
+    }
+
+    @Override
+    public Void visitNanLiteral(final GremlinParser.NanLiteralContext ctx) {
+        sb.append(ctx.getText());
+        return null;
+    }
+
+    @Override
+    public Void visitInfLiteral(final GremlinParser.InfLiteralContext ctx) {
+        sb.append(ctx.getText());
+        return null;
+    }
+
+    @Override
+    public Void visitVariable(final GremlinParser.VariableContext ctx) {
+        final String var = ctx.getText();
+        sb.append(var);
+        parameters.add(var);
+        return null;
+    }
+
+    @Override
+    public Void visitTerminal(final TerminalNode node) {
+        // skip EOF node
+        if (null == node || node.getSymbol().getType() == -1) return null;
+
+        final String terminal = node.getSymbol().getText();
+        switch (terminal) {
+            case "(":
+                appendStepOpen();
+                break;
+            case ")":
+                appendStepClose();
+                break;
+            case ",":
+                appendArgumentSeparator();
+                break;
+            case ".":
+                appendStepSeparator();
+                break;
+            case "new":
+                sb.append("new");
+                if (!(node.getParent() instanceof GremlinParser.MapEntryContext))
+                    sb.append(" "); // includes a space for when not use in context of a Map entry key...one off
+                break;
+            default:
+                sb.append(processGremlinSymbol(terminal));
+        }
+        return null;
+    }
+
+    protected void appendExplicitNaming(final String txt, final String prefix) {
+        if (!txt.startsWith(prefix + ".")) {
+            sb.append(processGremlinSymbol(prefix)).append(".");
+            sb.append(processGremlinSymbol(txt));
+        } else {
+            final String[] split = txt.split("\\.");
+            sb.append(processGremlinSymbol(split[0])).append(".");
+            sb.append(processGremlinSymbol(split[1]));
+        }
+    }
+}
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translation.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translation.java
new file mode 100644
index 0000000000..274302b573
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translation.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.language.translator;
+
+import java.util.Collections;
+import java.util.Set;
+
+/**
+ * A translation of a script.
+ */
+public class Translation {
+
+    private final String original;
+
+    private final String translated;
+
+    private final Set<String> parameters;
+
+    Translation(final String original, final String translated, final Set<String> parameters) {
+        this.original = original;
+        this.translated = translated;
+        this.parameters = parameters;
+    }
+
+    /**
+     * Gets the original script.
+     */
+    public String getOriginal() {
+        return original;
+    }
+
+    /**
+     * Gets the translated script.
+     */
+    public String getTranslated() {
+        return translated;
+    }
+
+    /**
+     * Gets the parameters used in the translated script.
+     */
+    public Set<String> getParameters() {
+        return Collections.unmodifiableSet(parameters);
+    }
+
+    @Override
+    public String toString() {
+        return translated;
+    }
+}
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java
new file mode 100644
index 0000000000..7a75765c29
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.language.translator;
+
+import java.util.function.Function;
+
+public enum Translator {
+
+    LANGUAGE("Language", TranslateVisitor::new),
+    ANONYMIZED("Anonymized", AnonymizedTranslatorVisitor::new),
+    JAVA("Java", JavaTranslateVisitor::new),
+    PYTHON("Python", PythonTranslateVisitor::new),
+    //GROOVY("Groovy", "org.apache.tinkerpop.gremlin.language.translator.GroovyTranslateVisitor"),
+    ;
+
+    private final String name;
+    private final Function<String,TranslateVisitor> translateVisitorMaker;
+
+    Translator(final String name, final Function<String,TranslateVisitor> translateVisitorMaker) {
+        this.name = name;
+        this.translateVisitorMaker = translateVisitorMaker;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public TranslateVisitor getTranslateVisitor(final String graphTraversalSourceName) {
+        return translateVisitorMaker.apply(graphTraversalSourceName);
+    }
+
+    @Override
+    public String toString() {
+        return "Translator[" + name + "]";
+    }
+}
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslatorException.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslatorException.java
new file mode 100644
index 0000000000..da59614876
--- /dev/null
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/TranslatorException.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.language.translator;
+
+public class TranslatorException extends RuntimeException {
+    public TranslatorException(final String message) {
+        super(message);
+    }
+}
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategy.java
index dbf932404f..15f6f3c7e5 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategy.java
@@ -44,7 +44,7 @@ public class SeedStrategy extends AbstractTraversalStrategy<TraversalStrategy.De
 
     private final long seed;
 
-    public SeedStrategy(final long seed) {
+    private SeedStrategy(final long seed) {
         this.seed = seed;
     }
 
@@ -76,4 +76,21 @@ public class SeedStrategy extends AbstractTraversalStrategy<TraversalStrategy.De
         map.put(ID_SEED, this.seed);
         return new MapConfiguration(map);
     }
+
+    public static Builder build() {
+        return new Builder();
+    }
+
+    public static class Builder {
+        private long seed = 0;
+
+        public Builder seed(final long seed) {
+            this.seed = seed;
+            return this;
+        }
+
+        public SeedStrategy create() {
+            return new SeedStrategy(seed);
+        }
+    }
 }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalStrategyVisitorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalStrategyVisitorTest.java
index 445c6ff9db..1cfc5ec4ec 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalStrategyVisitorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalStrategyVisitorTest.java
@@ -57,7 +57,7 @@ public class TraversalStrategyVisitorTest {
     public static Iterable<Object[]> generateTestParameters() {
         return Arrays.asList(new Object[][]{
                 {"ReadOnlyStrategy", ReadOnlyStrategy.instance()},
-                {"new SeedStrategy(seed: 999999)", new SeedStrategy(999999)},
+                {"new SeedStrategy(seed: 999999)", SeedStrategy.build().seed(999999).create()},
                 {"new PartitionStrategy(partitionKey: 'k', includeMetaProperties: true)", PartitionStrategy.build().partitionKey("k").includeMetaProperties(true).create()},
                 {"new PartitionStrategy(partitionKey: 'k', writePartition: 'p', readPartitions: ['p','x','y'])", PartitionStrategy.build().partitionKey("k").writePartition("p").readPartitions("p", "x", "y").create()},
                 {"ProductiveByStrategy", ProductiveByStrategy.instance()},
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
new file mode 100644
index 0000000000..88b05dcf69
--- /dev/null
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java
@@ -0,0 +1,573 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tinkerpop.gremlin.language.translator;
+
+import org.junit.Test;
+import org.junit.experimental.runners.Enclosed;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.assertEquals;
+
+@RunWith(Enclosed.class)
+public class GremlinTranslatorTest {
+
+    @RunWith(Parameterized.class)
+    public static class VariableTest {
+
+        @Parameterized.Parameter(value = 0)
+        public String query;
+
+        @Parameterized.Parameter(value = 1)
+        public List<String> expectedVariables;
+
+        @Parameterized.Parameters(name = "{0}")
+        public static Collection<Object[]> data() {
+            return Arrays.asList(new Object[][]{
+                    {"g.V(l1)", Collections.singletonList("l1")},
+                    {"g.V().hasLabel('person').has(x, y).as('a').out('knows').as('b').select('a', 'b')", Arrays.asList("x", "y")},
+                    {"g.V(x).map(out(y).count())", Arrays.asList("x", "y")},
+            });
+        }
+
+        @Test
+        public void shouldExtractVariablesFromLanguage() {
+            final Translation translation = GremlinTranslator.translate(query, Translator.LANGUAGE);
+            assertEquals(expectedVariables.size(), translation.getParameters().size());
+            assertThat(translation.getParameters().toArray(), arrayContainingInAnyOrder(expectedVariables.toArray()));
+        }
+
+        @Test
+        public void shouldExtractVariablesFromJava() {
+            final Translation translation = GremlinTranslator.translate(query, Translator.JAVA);
+            assertEquals(expectedVariables.size(), translation.getParameters().size());
+            assertThat(translation.getParameters().toArray(), arrayContainingInAnyOrder(expectedVariables.toArray()));
+        }
+
+        @Test
+        public void shouldExtractVariablesFromPython() {
+            final Translation translation = GremlinTranslator.translate(query, Translator.PYTHON);
+            assertEquals(expectedVariables.size(), translation.getParameters().size());
+            assertThat(translation.getParameters().toArray(), arrayContainingInAnyOrder(expectedVariables.toArray()));
+        }
+    }
+
+    @RunWith(Parameterized.class)
+    public static class TranslationTest {
+        private final String query;
+        private final String expectedForLang;
+        private final String expectedForJava;
+        private final String expectedForPython;
+        private final String expectedForAnonymized;
+
+        /**
+         * Test data where first element is the Gremlin query to translate and the following elements are the expected
+         * translations for each language.
+         * <ol>
+         *     <li>Language</li>
+         *     <li>Java</li>
+         *     <li>Python</li>
+         * </ol>
+         * If the translation is expected end in error then just set the value to the expected error message.
+         */
+        @Parameterized.Parameters(name = "{0}")
+        public static Collection<Object[]> data() {
+            return Arrays.asList(new Object[][]{
+                    {"g",
+                            null,
+                            null,
+                            null,
+                            null},
+                    {"g.with(\"x\")",
+                            null,
+                            "g.with(string0)",
+                            null,
+                            "g.with_('x')"},
+                    {"g.with('x', 'xyz')",
+                            null,
+                            "g.with(string0, string1)",
+                            "g.with(\"x\", \"xyz\")",
+                            "g.with_('x', 'xyz')"},
+                    {"g.with('x','xyz')",
+                            "g.with('x', 'xyz')",
+                            "g.with(string0, string1)",
+                            "g.with(\"x\", \"xyz\")",
+                            "g.with_('x', 'xyz')"},
+                    {"g.with('x', '')",
+                            null,
+                            "g.with(string0, string1)",
+                            "g.with(\"x\", \"\")",
+                            "g.with_('x', '')"},
+                    {"g.with('x', 'x')",
+                            null,
+                            "g.with(string0, string0)",
+                            "g.with(\"x\", \"x\")",
+                            "g.with_('x', 'x')"},
+                    {"g.with('x', null)",
+                            null,
+                            "g.with(string0, object0)",
+                            "g.with(\"x\", null)",
+                            "g.with_('x', None)"},
+                    {"g.with('x', Infinity)",
+                            null,
+                            "g.with(string0, number0)",
+                            "g.with(\"x\", Double.POSITIVE_INFINITY)",
+                            "g.with_('x', float('inf'))"},
+                    {"g.with('x', -Infinity)",
+                            null,
+                            "g.with(string0, number0)",
+                            "g.with(\"x\", Double.NEGATIVE_INFINITY)",
+                            "g.with_('x', float('-inf'))"},
+                    {"g.with('x', 1.0)",
+                            null,
+                            "g.with(string0, number0)",
+                            "g.with(\"x\", 1.0)",
+                            "g.with_('x', 1.0)",},
+                    {"g.with('x', 1.0D)",
+                            null,
+                            "g.with(string0, double0)",
+                            "g.with(\"x\", 1.0d)",
+                            "g.with_('x', 1.0)"},
+                    {"g.with('x', 1.0d)",
+                            null,
+                            "g.with(string0, double0)",
+                            "g.with(\"x\", 1.0d)",
+                            "g.with_('x', 1.0)"},
+                    {"g.with('x', -1.0d)",
+                            null,
+                            "g.with(string0, double0)",
+                            "g.with(\"x\", -1.0d)",
+                            "g.with_('x', -1.0)"},
+                    {"g.with('x', 1.0F)",
+                            null,
+                            "g.with(string0, float0)",
+                            "g.with(\"x\", 1.0f)",
+                            "g.with_('x', 1.0)"},
+                    {"g.with('x', 1.0f)",
+                            null,
+                            "g.with(string0, float0)",
+                            "g.with(\"x\", 1.0f)",
+                            "g.with_('x', 1.0)"},
+                    {"g.with('x', -1.0F)",
+                            null,
+                            "g.with(string0, float0)",
+                            "g.with(\"x\", -1.0f)",
+                            "g.with_('x', -1.0)"},
+                    {"g.with('x', 1.0m)",
+                            null,
+                            "g.with(string0, bigdecimal0)",
+                            "g.with(\"x\", new BigDecimal(\"1.0\"))",
+                            "g.with_('x', 1.0)"},
+                    {"g.with('x', -1.0m)",
+                            null,
+                            "g.with(string0, bigdecimal0)",
+                            "g.with(\"x\", new BigDecimal(\"-1.0\"))",
+                            "g.with_('x', -1.0)"},
+                    {"g.with('x', -1.0M)",
+                            null,
+                            "g.with(string0, bigdecimal0)",
+                            "g.with(\"x\", new BigDecimal(\"-1.0\"))",
+                            "g.with_('x', -1.0)"},
+                    {"g.with('x', 1b)",
+                            null,
+                            "g.with(string0, byte0)",
+                            "g.with(\"x\", new Byte(1))",
+                            "g.with_('x', 1)"},
+                    {"g.with('x', 1B)",
+                            null,
+                            "g.with(string0, byte0)",
+                            "g.with(\"x\", new Byte(1))",
+                            "g.with_('x', 1)"},
+                    {"g.with('x', -1b)",
+                            null,
+                            "g.with(string0, byte0)",
+                            "g.with(\"x\", new Byte(-1))",
+                            "g.with_('x', -1)"},
+                    {"g.with('x', 1s)",
+                            null,
+                            "g.with(string0, short0)",
+                            "g.with(\"x\", new Short(1))",
+                            "g.with_('x', 1)"},
+                    {"g.with('x', -1s)",
+                            null,
+                            "g.with(string0, short0)",
+                            "g.with(\"x\", new Short(-1))",
+                            "g.with_('x', -1)"},
+                    {"g.with('x', 1S)",
+                            null,
+                            "g.with(string0, short0)",
+                            "g.with(\"x\", new Short(1))",
+                            "g.with_('x', 1)"},
+                    {"g.with('x', 1i)",
+                            null,
+                            "g.with(string0, integer0)",
+                            "g.with(\"x\", 1)",
+                            "g.with_('x', 1)"},
+                    {"g.with('x', 1I)",
+                            null,
+                            "g.with(string0, integer0)",
+                            "g.with(\"x\", 1)",
+                            "g.with_('x', 1)"},
+                    {"g.with('x', -1i)",
+                            null,
+                            "g.with(string0, integer0)",
+                            "g.with(\"x\", -1)",
+                            "g.with_('x', -1)"},
+                    {"g.with('x', 1l)",
+                            null,
+                            "g.with(string0, long0)",
+                            "g.with(\"x\", 1l)",
+                            "g.with_('x', long(1))"},
+                    {"g.with('x', 1L)",
+                            null,
+                            "g.with(string0, long0)",
+                            "g.with(\"x\", 1l)",
+                            "g.with_('x', long(1))"},
+                    {"g.with('x', -1l)",
+                            null,
+                            "g.with(string0, long0)",
+                            "g.with(\"x\", -1l)",
+                            "g.with_('x', long(-1))"},
+                    {"g.with('x', 1n)",
+                            null,
+                            "g.with(string0, biginteger0)",
+                            "g.with(\"x\", new BigInteger(\"1\"))",
+                            "g.with_('x', 1)"},
+                    {"g.with('x', 1N)",
+                            null,
+                            "g.with(string0, biginteger0)",
+                            "g.with(\"x\", new BigInteger(\"1\"))",
+                            "g.with_('x', 1)"},
+                    {"g.with('x', -1n)",
+                            null,
+                            "g.with(string0, biginteger0)",
+                            "g.with(\"x\", new BigInteger(\"-1\"))",
+                            "g.with_('x', -1)"},
+                    {"g.with('x', datetime('2023-08-02T00:00:00Z'))",
+                            null,
+                            "g.with(string0, date0)",
+                            "g.with(\"x\", new Date(1690934400000))",
+                            "g.with_('x', datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0))"},
+                    {"g.with('x', [x: 1])",
+                            "g.with('x', [x:1])",
+                            "g.with(string0, map0)",
+                            "g.with(\"x\", new LinkedHashMap<Object, Object>() {{ put(\"x\", 1); }})",
+                            "g.with_('x', { 'x': 1 })"},
+                    {"g.with('x', [x:1, new:2])",
+                            null,
+                            "g.with(string0, map0)",
+                            "g.with(\"x\", new LinkedHashMap<Object, Object>() {{ put(\"x\", 1); put(\"new\", 2); }})",
+                            "g.with_('x', { 'x': 1, 'new': 2 })"},
+                    {"g.with('x', [\"x\":1])",
+                            null,
+                            "g.with(string0, map0)",
+                            "g.with(\"x\", new LinkedHashMap<Object, Object>() {{ put(\"x\", 1); }})",
+                            "g.with_('x', { 'x': 1 })"},
+                    {"g.with('x', [1:'x'])",
+                            null,
+                            "g.with(string0, map0)",
+                            "g.with(\"x\", new LinkedHashMap<Object, Object>() {{ put(1, \"x\"); }})",
+                            "g.with_('x', { 1: 'x' })"},
+                    {"g.with('x', [1, 'x'])",
+                            null,
+                            "g.with(string0, list0)",
+                            "g.with(\"x\", new ArrayList<Object>() {{ add(1); add(\"x\"); }})",
+                            "g.with_('x', [1, 'x'])"},
+                    {"g.with('x', 0..5)",
+                            null,
+                            "g.with(string0, number0..number1)",
+                            "Java does not support range literals",
+                            "Python does not support range literals"},
+                    {"g.withBulk(false)",
+                            null,
+                            "g.withBulk(boolean0)",
+                            null,
+                            "g.with_bulk(False)"},
+                    {"g.withBulk(true)",
+                            null,
+                            "g.withBulk(boolean0)",
+                            null,
+                            "g.with_bulk(True)"},
+                    {"g.withBulk( true )",
+                            "g.withBulk(true)",
+                            "g.withBulk(boolean0)",
+                            "g.withBulk(true)",
+                            "g.with_bulk(True)"},
+                    {"g.withBulk(x)",
+                            null,
+                            null,
+                            null,
+                            "g.with_bulk(x)"},
+                    {"g.withStrategies(ReadOnlyStrategy)",
+                            null,
+                            null,
+                            "g.withStrategies(ReadOnlyStrategy.instance())",
+                            "g.with_strategies(ReadOnlyStrategy())"},
+                    {"g.withStrategies(new SeedStrategy(seed:10000))",
+                            null,
+                            "g.withStrategies(new SeedStrategy(seed:number0))",
+                            "g.withStrategies(SeedStrategy.build().seed(10000).create())",
+                            "g.with_strategies(SeedStrategy(seed=10000))"},
+                    {"g.withStrategies(new PartitionStrategy(includeMetaProperties: true, partitionKey:'x'))",
+                            "g.withStrategies(new PartitionStrategy(includeMetaProperties:true, partitionKey:'x'))",
+                            "g.withStrategies(new PartitionStrategy(includeMetaProperties:boolean0, partitionKey:string0))",
+                            "g.withStrategies(PartitionStrategy.build().includeMetaProperties(true).partitionKey(\"x\").create())",
+                            "g.with_strategies(PartitionStrategy(include_meta_properties=True, partition_key='x'))"},
+                    {"g.withStrategies(new SubgraphStrategy(vertices:__.has('name', 'vadas'), edges: has('weight', gt(0.5))))",
+                            "g.withStrategies(new SubgraphStrategy(vertices:__.has('name', 'vadas'), edges:__.has('weight', P.gt(0.5))))",
+                            "g.withStrategies(new SubgraphStrategy(vertices:__.has(string0, string1), edges:__.has(string2, P.gt(number0))))",
+                            "g.withStrategies(SubgraphStrategy.build().vertices(__.has(\"name\", \"vadas\")).edges(__.has(\"weight\", P.gt(0.5))).create())",
+                            "g.with_strategies(SubgraphStrategy(vertices=__.has('name', 'vadas'), edges=__.has('weight', P.gt(0.5))))"},
+                    {"g.withStrategies(new SubgraphStrategy(checkAdjacentVertices: false,\n" +
+                            "                                            vertices: __.has(\"name\", P.within(\"josh\", \"lop\", \"ripple\")),\n" +
+                            "                                            edges: __.or(__.has(\"weight\", 0.4).hasLabel(\"created\"),\n" +
+                            "                                                         __.has(\"weight\", 1.0).hasLabel(\"created\")))).E()",
+                            "g.withStrategies(new SubgraphStrategy(checkAdjacentVertices:false, vertices:__.has(\"name\", P.within(\"josh\", \"lop\", \"ripple\")), edges:__.or(__.has(\"weight\", 0.4).hasLabel(\"created\"), __.has(\"weight\", 1.0).hasLabel(\"created\")))).E()",
+                            "g.withStrategies(new SubgraphStrategy(checkAdjacentVertices:boolean0, vertices:__.has(string0, P.within(string1, string2, string3)), edges:__.or(__.has(string4, number0).hasLabel(string5), __.has(string4, number1).hasLabel(string5)))).E()",
+                            "g.withStrategies(SubgraphStrategy.build().checkAdjacentVertices(false).vertices(__.has(\"name\", P.within(\"josh\", \"lop\", \"ripple\"))).edges(__.or(__.has(\"weight\", 0.4).hasLabel(\"created\"), __.has(\"weight\", 1.0).hasLabel(\"created\"))).create()).E()",
+                            "g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).E()"},
+                    {"g.inject(0..5)",
+                            null,
+                            "g.inject(number0..number1)",
+                            "Java does not support range literals",
+                            "Python does not support range literals"},
+                    {"g.inject(1694017707000).asDate()",
+                            null,
+                            "g.inject(number0).asDate()",
+                            null,
+                            "g.inject(long(1694017707000)).as_date()"},
+                    {"g.V().hasLabel(null)",
+                            null,
+                            "g.V().hasLabel(string0)",
+                            null,
+                            "g.V().has_label(None)",},
+                    {"g.V().hasLabel('person')",
+                            null,
+                            "g.V().hasLabel(string0)",
+                            "g.V().hasLabel(\"person\")",
+                            "g.V().has_label('person')"},
+                    {"g.V().hasLabel('person', 'software', 'class')",
+                            null,
+                            "g.V().hasLabel(string0, string1, string2)",
+                            "g.V().hasLabel(\"person\", \"software\", \"class\")",
+                            "g.V().has_label('person', 'software', 'class')"},
+                    {"g.V().hasLabel(null, 'software', 'class')",
+                            null,
+                            "g.V().hasLabel(string0, string1, string2)",
+                            "g.V().hasLabel(null, \"software\", \"class\")",
+                            "g.V().has_label(None, 'software', 'class')"},
+                    {"g.V().map(__.out().count())",
+                            null,
+                            null,
+                            null,
+                            null},
+                    {"g.V().map(out().count())",
+                            "g.V().map(__.out().count())",
+                            "g.V().map(__.out().count())",
+                            "g.V().map(__.out().count())",
+                            "g.V().map(__.out().count())"},
+                    {"g.V().fold().count(Scope.local)",
+                            null,
+                            null,
+                            null,
+                            null},
+                    {"g.V().fold().count(Scope.local)",
+                            null,
+                            null,
+                            null,
+                            null},
+                    {"g.V().has(T.id, 1)",
+                            null,
+                            "g.V().has(T.id, number0)",
+                            null,
+                            "g.V().has(T.id_, 1)"},
+                    {"g.V().has(id, 1)",
+                            "g.V().has(T.id, 1)",
+                            "g.V().has(T.id, number0)",
+                            "g.V().has(T.id, 1)",
+                            "g.V().has(T.id_, 1)"},
+                    {"g.V().has(\"name\", P.within(\"josh\",\"stephen\"))",
+                            "g.V().has(\"name\", P.within(\"josh\", \"stephen\"))",
+                            "g.V().has(string0, P.within(string1, string2))",
+                            "g.V().has(\"name\", P.within(\"josh\", \"stephen\"))",
+                            "g.V().has('name', P.within('josh', 'stephen'))"},
+                    {"g.V().has(\"name\", P.eq(\"josh\"))",
+                            null,
+                            "g.V().has(string0, P.eq(string1))",
+                            null,
+                            "g.V().has('name', P.eq('josh'))"},
+                    {"g.V().has(\"name\", P.eq(\"josh\").negate())",
+                            null,
+                            "g.V().has(string0, P.eq(string1).negate())",
+                            null,
+                            "g.V().has('name', P.eq('josh').negate())"},
+                    {"g.V().has(\"name\", P.within())",
+                            null,
+                            "g.V().has(string0, P.within())",
+                            null,
+                            "g.V().has('name', P.within())"},
+                    {"g.V().has(\"name\", P.within(\"josh\",\"stephen\").or(eq(\"vadas\")))",
+                            "g.V().has(\"name\", P.within(\"josh\", \"stephen\").or(P.eq(\"vadas\")))",
+                            "g.V().has(string0, P.within(string1, string2).or(P.eq(string3)))",
+                            "g.V().has(\"name\", P.within(\"josh\", \"stephen\").or(P.eq(\"vadas\")))",
+                            "g.V().has('name', P.within('josh', 'stephen').or_(P.eq('vadas')))"},
+                    {"g.V().has(\"name\", within(\"josh\", \"stephen\"))",
+                            "g.V().has(\"name\", P.within(\"josh\", \"stephen\"))",
+                            "g.V().has(string0, P.within(string1, string2))",
+                            "g.V().has(\"name\", P.within(\"josh\", \"stephen\"))",
+                            "g.V().has('name', P.within('josh', 'stephen'))"},
+                    {"g.V().has(\"name\", TextP.containing(\"j\").negate())",
+                            null,
+                            "g.V().has(string0, TextP.containing(string1).negate())",
+                            null,
+                            "g.V().has('name', TextP.containing('j').negate())"},
+                    {"g.V().hasLabel(\"person\").has(\"age\", P.not(P.lte(10).and(P.not(P.between(11, 20)))).and(P.lt(29).or(P.eq(35)))).values(\"name\")",
+                            null,
+                            "g.V().hasLabel(string0).has(string1, P.not(P.lte(number0).and(P.not(P.between(number1, number2)))).and(P.lt(number3).or(P.eq(number4)))).values(string2)",
+                            null,
+                            "g.V().has_label('person').has('age', P.not_(P.lte(10).and_(P.not_(P.between(11, 20)))).and_(P.lt(29).or_(P.eq(35)))).values('name')"},
+                    {"g.V().has(\"name\", containing(\"j\"))",
+                            "g.V().has(\"name\", TextP.containing(\"j\"))",
+                            "g.V().has(string0, TextP.containing(string1))",
+                            "g.V().has(\"name\", TextP.containing(\"j\"))",
+                            "g.V().has('name', TextP.containing('j'))"},
+                    {"g.V().property(set, \"name\", \"stephen\")",
+                            "g.V().property(Cardinality.set, \"name\", \"stephen\")",
+                            "g.V().property(Cardinality.set, string0, string1)",
+                            "g.V().property(Cardinality.set, \"name\", \"stephen\")",
+                            "g.V().property(Cardinality.set_, 'name', 'stephen')"},
+                    {"g.V().property(Cardinality.set, \"name\", \"stephen\")",
+                            null,
+                            "g.V().property(Cardinality.set, string0, string1)",
+                            null,
+                            "g.V().property(Cardinality.set_, 'name', 'stephen')"},
+                    {"g.V().has('name', 'foo').property([\"name\":Cardinality.set(\"bar\"), \"age\":43])",
+                            null,
+                            "g.V().has(string0, string1).property(map0)",
+                            "g.V().has(\"name\", \"foo\").property(new LinkedHashMap<Object, Object>() {{ put(\"name\", Cardinality.set(\"bar\")); put(\"age\", 43); }})",
+                            "g.V().has('name', 'foo').property({ 'name': CardinalityValue.set_('bar'), 'age': 43 })"},
+                    {"g.V(new Vertex(1, \"person\")).limit(1)",
+                            null,
+                            "g.V(new Vertex(number0, string0)).limit(number0)",
+                            "g.V(new DetachedVertex(1, \"person\")).limit(1)",
+                            "g.V(Vertex(1, 'person')).limit(1)",},
+                    {"g.V().both().properties().dedup().hasKey(\"age\").value()",
+                            null,
+                            "g.V().both().properties().dedup().hasKey(string0).value()",
+                            null,
+                            "g.V().both().properties().dedup().has_key('age').value()",},
+                    {"g.V().connectedComponent().with(ConnectedComponent.propertyName, \"component\")",
+                            "g.V().connectedComponent().with(ConnectedComponent.propertyName, \"component\")",
+                            "g.V().connectedComponent().with(ConnectedComponent.propertyName, string0)",
+                            "g.V().connectedComponent().with(ConnectedComponent.propertyName, \"component\")",
+                            "g.V().connected_component().with_(ConnectedComponent.property_name, 'component')"},
+                    {"g.withSideEffect(\"c\", xx2).withSideEffect(\"m\", xx3).mergeE(xx1).option(Merge.onCreate, __.select(\"c\")).option(Merge.onMatch, __.select(\"m\"))",
+                            null,
+                            "g.withSideEffect(string0, xx2).withSideEffect(string1, xx3).mergeE(map0).option(Merge.onCreate, __.select(string0)).option(Merge.onMatch, __.select(string1))",
+                            null,
+                            "g.with_side_effect('c', xx2).with_side_effect('m', xx3).merge_e(xx1).option(Merge.on_create, __.select('c')).option(Merge.on_match, __.select('m'))"},
+                    {"g.V(1, 2, 3)",
+                            null,
+                            "g.V(number0, number1, number2)",
+                            null,
+                            null},
+                    {"g.V().limit(1)",
+                            null,
+                            "g.V().limit(number0)",
+                            null,
+                            null},
+                    {"g.V().limit(1L)",
+                            null,
+                            "g.V().limit(long0)",
+                            "g.V().limit(1l)",
+                            "g.V().limit(long(1))"},
+                    {"g.V().limit(x)",
+                            null,
+                            null,
+                            null,
+                            null},
+                    {"g.V().toList()",
+                            null,
+                            null,
+                            null,
+                            "g.V().to_list()"},
+                    {"g.V().iterate()",
+                            null,
+                            null,
+                            null,
+                            null},
+                    {"g.tx().commit()",
+                            null,
+                            null,
+                            null,
+                            null},
+            });
+        }
+
+        public TranslationTest(final String query, final String expectedForLang,
+                               final String expectedForAnonymized,
+                               final String expectedForJava,
+                               final String expectedForPython) {
+            this.query = query;
+            this.expectedForLang = expectedForLang != null ? expectedForLang : query;
+            this.expectedForAnonymized = expectedForAnonymized != null ? expectedForAnonymized : query;
+            this.expectedForJava = expectedForJava != null ? expectedForJava : query;
+            this.expectedForPython = expectedForPython != null ? expectedForPython : query;
+        }
+
+        @Test
+        public void shouldTranslateForLang() {
+            final String translatedQuery = GremlinTranslator.translate(query, Translator.LANGUAGE).getTranslated();
+            assertEquals(expectedForLang, translatedQuery);
+        }
+
+        @Test
+        public void shouldTranslateForAnonymized() {
+            final String translatedQuery = GremlinTranslator.translate(query, Translator.ANONYMIZED).getTranslated();
+            assertEquals(expectedForAnonymized, translatedQuery);
+        }
+
+        @Test
+        public void shouldTranslateForJava() {
+            try {
+                final String translatedQuery = GremlinTranslator.translate(query, "g", Translator.JAVA).getTranslated();
+                assertEquals(expectedForJava, translatedQuery);
+            } catch (TranslatorException e) {
+                assertThat(e.getMessage(), startsWith(expectedForJava));
+            }
+        }
+
+        @Test
+        public void shouldTranslateForPython() {
+            try {
+                final String translatedQuery = GremlinTranslator.translate(query, "g", Translator.PYTHON).getTranslated();
+                assertEquals(expectedForPython, translatedQuery);
+            } catch (TranslatorException e) {
+                assertThat(e.getMessage(), startsWith(expectedForPython));
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/DotNetTranslatorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/DotNetTranslatorTest.java
index 6662de2347..74c8b051e9 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/DotNetTranslatorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/DotNetTranslatorTest.java
@@ -68,7 +68,7 @@ public class DotNetTranslatorTest {
                         "new SeedStrategy(seed: 999999)).V().Has(\"name\")",
                 translator.translate(g.withStrategies(ReadOnlyStrategy.instance(),
                         SubgraphStrategy.build().checkAdjacentVertices(false).vertices(hasLabel("person")).create(),
-                        new SeedStrategy(999999)).
+                        SeedStrategy.build().seed(999999).create()).
                         V().has("name").asAdmin().getBytecode()).getScript());
     }
 
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GolangTranslatorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GolangTranslatorTest.java
index 8313589129..2e4323f6b9 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GolangTranslatorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GolangTranslatorTest.java
@@ -100,7 +100,7 @@ public class GolangTranslatorTest {
         assertEquals("g.WithStrategies(gremlingo.ReadOnlyStrategy(), gremlingo.SubgraphStrategy(gremlingo.SubgraphStrategyConfig{CheckAdjacentVertices: false, Vertices: gremlingo.T__.HasLabel(\"person\")}), gremlingo.SeedStrategy(gremlingo.SeedStrategyConfig{Seed: 999999})).V().Has(\"name\")",
                 translator.translate(g.withStrategies(ReadOnlyStrategy.instance(),
                                 SubgraphStrategy.build().checkAdjacentVertices(false).vertices(hasLabel("person")).create(),
-                                new SeedStrategy(999999)).
+                                SeedStrategy.build().seed(999999).create()).
                         V().has("name").asAdmin().getBytecode()).getScript());
     }
 
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/JavascriptTranslatorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/JavascriptTranslatorTest.java
index ba99d44969..4052b5c937 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/JavascriptTranslatorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/JavascriptTranslatorTest.java
@@ -62,7 +62,7 @@ public class JavascriptTranslatorTest {
                         "new SeedStrategy({seed:999999})).V().has(\"name\")",
                 translator.translate(g.withStrategies(ReadOnlyStrategy.instance(),
                         SubgraphStrategy.build().checkAdjacentVertices(false).vertices(hasLabel("person")).create(),
-                        new SeedStrategy(999999)).
+                        SeedStrategy.build().seed(999999).create()).
                         V().has("name").asAdmin().getBytecode()).getScript());
     }
 
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslatorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslatorTest.java
index ebbca186f8..7cc801d4a8 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslatorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslatorTest.java
@@ -111,7 +111,7 @@ public class PythonTranslatorTest {
         assertEquals("g.withStrategies(*[TraversalStrategy('ReadOnlyStrategy', None, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy'),TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.hasLabel('person')}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy'),TraversalStrategy('SeedStrategy',{'seed':999999,'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.S [...]
                 translator.translate(g.withStrategies(ReadOnlyStrategy.instance(),
                         SubgraphStrategy.build().checkAdjacentVertices(false).vertices(hasLabel("person")).create(),
-                        new SeedStrategy(999999)).
+                        SeedStrategy.build().seed(999999).create()).
                         V().has("name").asAdmin().getBytecode()).getScript());
     }
 
diff --git a/gremlin-language/src/main/antlr4/Gremlin.g4 b/gremlin-language/src/main/antlr4/Gremlin.g4
index 95b93e9e84..6a28329e77 100644
--- a/gremlin-language/src/main/antlr4/Gremlin.g4
+++ b/gremlin-language/src/main/antlr4/Gremlin.g4
@@ -964,7 +964,7 @@ traversalStrategy
     : NEW 'PartitionStrategy' LPAREN traversalStrategyArgs_PartitionStrategy? (COMMA traversalStrategyArgs_PartitionStrategy)* RPAREN
 //  | 'RequirementStrategy' - not supported as it's internally relevant only
 //  | 'SackStrategy' - not supported directly as it's internal to withSack()
-    | NEW 'SeedStrategy' LPAREN 'seed' COLON integerArgument RPAREN
+    | NEW 'SeedStrategy' LPAREN traversalStrategyArgs_SeedStrategy RPAREN
 //  | 'SideEffectStrategy' - not supported directly as it's internal to withSideEffect()
     | NEW 'SubgraphStrategy' LPAREN traversalStrategyArgs_SubgraphStrategy? (COMMA traversalStrategyArgs_SubgraphStrategy)* RPAREN
 //  | 'MatchAlgorithmStrategy' - not supported directly as it's internal to match()
@@ -993,6 +993,10 @@ traversalStrategy
 //  | 'StandardVerificationStrategy' - not supported since this is an interal strategy
     ;
 
+traversalStrategyArgs_SeedStrategy
+    : 'seed' COLON integerArgument
+    ;
+
 traversalStrategyArgs_ProductiveByStrategy
     : 'productiveKeys' COLON stringLiteralList
     ;
diff --git a/gremlin-python/build/generate.groovy b/gremlin-python/build/generate.groovy
index 054792ff97..5f59667aa6 100644
--- a/gremlin-python/build/generate.groovy
+++ b/gremlin-python/build/generate.groovy
@@ -17,52 +17,18 @@
  * under the License.
  */
 
-import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph
-import org.apache.tinkerpop.gremlin.process.traversal.translator.PythonTranslator
-import org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine
-import org.apache.tinkerpop.gremlin.groovy.jsr223.ast.AmbiguousMethodASTTransformation
-import org.apache.tinkerpop.gremlin.groovy.jsr223.ast.VarAsBindingASTTransformation
-import org.apache.tinkerpop.gremlin.groovy.jsr223.ast.RepeatASTTransformationCustomizer
-import org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyCustomizer
-import org.codehaus.groovy.control.customizers.CompilationCustomizer
+import org.apache.tinkerpop.gremlin.language.translator.GremlinTranslator
+import org.apache.tinkerpop.gremlin.language.translator.Translator
 import org.apache.tinkerpop.gremlin.language.corpus.FeatureReader
 
-import javax.script.SimpleBindings
 import java.nio.file.Paths
 
-import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal
-
-// getting an exception like:
-// > InvocationTargetException: javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of
-// > method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.mergeE() is applicable for
-// > argument types: (String) values: [4ffdea36-4a0e-4681-acba-e76875d1b25b]
-// usually means bindings are not being extracted properly by VarAsBindingASTTransformation which typically happens
-// when a step is taking an argument that cannot properly resolve to the type required by the step itself. there are
-// special cases in that VarAsBindingASTTransformation class which might need to be adjusted. Editing the
-// GremlinGroovyScriptEngineTest#shouldProduceBindingsForVars() with the failing step and argument can typically make
-// this issue relatively easy to debug and enforce.
-//
-// getting an exception like:
-// > Ambiguous method overloading for method org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource#mergeV.
-// likely requires changes to the AmbiguousMethodASTTransformation which forces a call to a particular method overload
-// and usually relates to use of null where the type isn't clear
-
 // file is overwritten on each generation
 radishGremlinFile = new File("${projectBaseDir}/gremlin-python/src/main/python/radish/gremlin.py")
 
 // assumes globally unique scenario names for keys with list of Gremlin traversals as they appear
 gremlins = FeatureReader.parseGrouped(Paths.get("${projectBaseDir}", "gremlin-test", "src", "main", "resources", "org", "apache", "tinkerpop", "gremlin", "test", "features").toString())
 
-gremlinGroovyScriptEngine = new GremlinGroovyScriptEngine(
-        (GroovyCustomizer) { -> new RepeatASTTransformationCustomizer(new AmbiguousMethodASTTransformation()) },
-        (GroovyCustomizer) { -> new RepeatASTTransformationCustomizer(new VarAsBindingASTTransformation()) }
-)
-
-translator = PythonTranslator.of('g')
-g = traversal().withEmbedded(EmptyGraph.instance())
-bindings = new SimpleBindings()
-bindings.put('g', g)
-
 radishGremlinFile.withWriter('UTF-8') { Writer writer ->
     writer.writeLine('#\n' +
             '# Licensed to the Apache Software Foundation (ASF) under one\n' +
@@ -92,33 +58,31 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer ->
                     'import datetime\n' +
                     'from gremlin_python.statics import long\n' +
                     'from gremlin_python.process.anonymous_traversal import traversal\n' +
+                    'from gremlin_python.process.strategies import SeedStrategy, SubgraphStrategy, PartitionStrategy, ProductiveByStrategy, ReadOnlyStrategy\n' +
                     'from gremlin_python.process.traversal import TraversalStrategy\n' +
                     'from gremlin_python.process.graph_traversal import __\n' +
                     'from gremlin_python.structure.graph import Graph\n' +
                     'from gremlin_python.process.traversal import Barrier, Cardinality, CardinalityValue, P, TextP, Pop, Scope, Column, Order, Direction, DT, Merge, T, Pick, Operator, IO, WithOptions\n')
 
-    // Groovy can't process certain null oriented calls because it gets confused with the right overload to call
-    // at runtime. using this approach for now as these are the only such situations encountered so far. a better
-    // solution may become necessary as testing of nulls expands.
     def staticTranslate = [:]
     // SAMPLE: g_injectXnull_nullX: "    'g_injectXnull_nullX': [(lambda g: g.inject(None,None))], ",
 
     writer.writeLine('world.gremlins = {')
     gremlins.each { k,v ->
-        if (staticTranslate.containsKey(k)) {
+        // skipping lambdas until we decide for sure that they are out in 4.x
+        if (v.any { it.contains('l1')} || v.any { it.contains('pred1')} || v.any { it.contains('Lambda')}) {
+            writer.writeLine("    '${k}': [],  # skipping as it contains a lambda")
+        } else if (staticTranslate.containsKey(k)) {
             writer.writeLine(staticTranslate[k])
         } else {
             writer.write("    '")
             writer.write(k)
             writer.write("': [")
-            def collected = v.collect {
-                def t = gremlinGroovyScriptEngine.eval(it, bindings)
-                [t, t.bytecode.bindings.keySet()]
-            }
-            def uniqueBindings = collected.collect { it[1] }.flatten().unique()
+            def collected = v.collect { GremlinTranslator.translate(it, Translator.PYTHON) }
+            def uniqueBindings = collected.collect { it.getParameters() }.flatten().unique()
             def gremlinItty = collected.iterator()
             while (gremlinItty.hasNext()) {
-                def t = gremlinItty.next()[0]
+                def t = gremlinItty.next()
                 writer.write("(lambda g")
                 if (!uniqueBindings.isEmpty()) {
                     writer.write(", ")
@@ -126,7 +90,7 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer ->
                     writer.write("=None")
                 }
                 writer.write(":")
-                writer.write(translator.translate(t.bytecode).script)
+                writer.write(t.getTranslated())
                 writer.write(")")
                 if (gremlinItty.hasNext()) writer.write(', ')
             }
diff --git a/gremlin-python/src/main/python/gremlin_python/process/graph_traversal.py b/gremlin-python/src/main/python/gremlin_python/process/graph_traversal.py
index eae0c8d264..7ee3406f52 100644
--- a/gremlin-python/src/main/python/gremlin_python/process/graph_traversal.py
+++ b/gremlin-python/src/main/python/gremlin_python/process/graph_traversal.py
@@ -537,6 +537,10 @@ class GraphTraversal(Traversal):
         self.bytecode.add_step("hasKey", *args)
         return self
 
+    def has_key(self, *args):
+        self.bytecode.add_step("hasKey", *args)
+        return self
+
     def hasLabel(self, *args):
         warnings.warn(
             "gremlin_python.process.GraphTraversalSource.hasLabel will be replaced by "
@@ -648,6 +652,10 @@ class GraphTraversal(Traversal):
         self.bytecode.add_step("lTrim", *args)
         return self
 
+    def l_trim(self, *args):
+        self.bytecode.add_step("lTrim", *args)
+        return self
+
     def map(self, *args):
         self.bytecode.add_step("map", *args)
         return self
@@ -830,6 +838,10 @@ class GraphTraversal(Traversal):
         self.bytecode.add_step("rTrim", *args)
         return self
 
+    def r_trim(self, *args):
+        self.bytecode.add_step("rTrim", *args)
+        return self
+
     def sack(self, *args):
         self.bytecode.add_step("sack", *args)
         return self
@@ -1404,6 +1416,10 @@ class __(object, metaclass=MagicType):
     def ltrim(cls, *args):
         return cls.graph_traversal(None, None, Bytecode()).ltrim(*args)
 
+    @classmethod
+    def l_trim(cls, *args):
+        return cls.graph_traversal(None, None, Bytecode()).l_trim(*args)
+
     @classmethod
     def map(cls, *args):
         return cls.graph_traversal(None, None, Bytecode()).map(*args)
@@ -1548,6 +1564,10 @@ class __(object, metaclass=MagicType):
     def rTrim(cls, *args):
         return cls.graph_traversal(None, None, Bytecode()).rTrim(*args)
 
+    @classmethod
+    def r_trim(cls, *args):
+        return cls.graph_traversal(None, None, Bytecode()).r_trim(*args)
+
     @classmethod
     def sack(cls, *args):
         return cls.graph_traversal(None, None, Bytecode()).sack(*args)
@@ -2076,6 +2096,9 @@ def ltrim(*args):
     return __.ltrim(*args)
 
 
+def l_trim(*args):
+    return __.l_trim(*args)
+
 def map(*args):
     return __.map(*args)
 
@@ -2196,6 +2219,10 @@ def rTrim(*args):
     return __.rTrim(*args)
 
 
+def r_trim(*args):
+    return __.r_trim(*args)
+
+
 def sack(*args):
     return __.sack(*args)
 
@@ -2474,6 +2501,8 @@ statics.add_static('loops', loops)
 
 statics.add_static('ltrim', ltrim)
 
+statics.add_static('l_trim', l_trim)
+
 statics.add_static('map', map)
 
 statics.add_static('match', match)
@@ -2534,6 +2563,8 @@ statics.add_static('reverse', reverse)
 
 statics.add_static('rTrim', rTrim)
 
+statics.add_static('r_trim', r_trim)
+
 statics.add_static('sack', sack)
 
 statics.add_static('sample', sample)
diff --git a/gremlin-python/src/main/python/gremlin_python/process/strategies.py b/gremlin-python/src/main/python/gremlin_python/process/strategies.py
index b7418840d8..b1e1619f96 100644
--- a/gremlin-python/src/main/python/gremlin_python/process/strategies.py
+++ b/gremlin-python/src/main/python/gremlin_python/process/strategies.py
@@ -87,7 +87,7 @@ class SubgraphStrategy(TraversalStrategy):
         if vertex_properties is not None:
             self.configuration["vertexProperties"] = vertex_properties
         if check_adjacent_vertices is not None:
-            self.configuration["checkAdjacentProperties"] = check_adjacent_vertices
+            self.configuration["checkAdjacentVertices"] = check_adjacent_vertices
 
 
 class VertexProgramStrategy(TraversalStrategy):
diff --git a/gremlin-python/src/main/python/gremlin_python/process/traversal.py b/gremlin-python/src/main/python/gremlin_python/process/traversal.py
index 3183e43480..fb74433348 100644
--- a/gremlin-python/src/main/python/gremlin_python/process/traversal.py
+++ b/gremlin-python/src/main/python/gremlin_python/process/traversal.py
@@ -214,9 +214,9 @@ statics.add_static('shuffle', Order.shuffle)
 statics.add_static('asc', Order.asc)
 statics.add_static('desc', Order.desc)
 
-Pick = Enum('Pick', ' any none')
+Pick = Enum('Pick', ' any_ none')
 
-statics.add_static('any', Pick.any)
+statics.add_static('any_', Pick.any_)
 statics.add_static('none', Pick.none)
 
 Pop = Enum('Pop', ' all_ first last mixed')
diff --git a/gremlin-python/src/main/python/radish/feature_steps.py b/gremlin-python/src/main/python/radish/feature_steps.py
index 7a5b8a0d1d..d3f1eae284 100644
--- a/gremlin-python/src/main/python/radish/feature_steps.py
+++ b/gremlin-python/src/main/python/radish/feature_steps.py
@@ -40,6 +40,15 @@ ignores = []
 
 @given("the {graph_name:w} graph")
 def choose_graph(step, graph_name):
+    step.context.ignore = step.text in ignores
+
+    tagset = [tag.name for tag in step.all_tags]
+    if not step.context.ignore:
+        step.context.ignore = "AllowNullPropertyValues" in tagset
+
+    if not step.context.ignore and len(step.context.traversals) == 0:
+        step.context.ignore = True
+
     step.context.graph_name = graph_name
     step.context.g = traversal().with_(step.context.remote_conn[graph_name])
 
@@ -79,14 +88,13 @@ def add_parameter(step, param_name, param):
 
 @given("the traversal of")
 def translate_traversal(step):
-    step.context.ignore = step.text in ignores
+    if step.context.ignore:
+        return
+
     p = step.context.traversal_params if hasattr(step.context, "traversal_params") else {}
     localg = step.context.g
-    tagset = [tag.name for tag in step.all_tags]
-
-    if not step.context.ignore:
-        step.context.ignore = "AllowNullPropertyValues" in tagset
 
+    tagset = [tag.name for tag in step.all_tags]
     if "GraphComputerOnly" in tagset:
         localg = step.context.g.withComputer()
     p['g'] = localg
@@ -101,6 +109,7 @@ def iterate_the_traversal(step):
     try:
         step.context.result = list(map(lambda x: _convert_results(x), step.context.traversal.toList()))
         step.context.failed = False
+        step.context.failed_message = ''
     except Exception as e:
         step.context.failed = True
         step.context.failed_message = getattr(e, 'message', repr(e))
@@ -114,6 +123,7 @@ def next_the_traversal(step):
     try:
         step.context.result = list(map(lambda x: _convert_results(x), step.context.traversal.next()))
         step.context.failed = False
+        step.context.failed_message = ''
     except Exception as e:
         step.context.failed = True
         step.context.failed_message = getattr(e, 'message', repr(e))
@@ -143,7 +153,7 @@ def assert_result(step, characterized_as):
     if step.context.ignore:
         return
 
-    assert_that(step.context.failed, equal_to(False))
+    assert_that(step.context.failed, equal_to(False), step.context.failed_message)
 
     if characterized_as == "empty":  # no results
         assert_that(len(step.context.result), equal_to(0))
@@ -162,7 +172,7 @@ def assert_side_effects(step, count, traversal_string):
     if step.context.ignore:
         return
 
-    assert_that(step.context.failed, equal_to(False))
+    assert_that(step.context.failed, equal_to(False), step.context.failed_message)
 
     p = step.context.traversal_params if hasattr(step.context, "traversal_params") else {}
     p['g'] = step.context.g
@@ -176,7 +186,7 @@ def assert_count(step, count):
     if step.context.ignore:
         return
 
-    assert_that(step.context.failed, equal_to(False))
+    assert_that(step.context.failed, equal_to(False), step.context.failed_message)
 
     assert_that(len(list(step.context.result)), equal_to(count))
 
diff --git a/gremlin-python/src/main/python/radish/gremlin.py b/gremlin-python/src/main/python/radish/gremlin.py
index ab5168e468..53702cbc0e 100644
--- a/gremlin-python/src/main/python/radish/gremlin.py
+++ b/gremlin-python/src/main/python/radish/gremlin.py
@@ -28,475 +28,476 @@ from radish import world
 import datetime
 from gremlin_python.statics import long
 from gremlin_python.process.anonymous_traversal import traversal
+from gremlin_python.process.strategies import SeedStrategy, SubgraphStrategy, PartitionStrategy, ProductiveByStrategy, ReadOnlyStrategy
 from gremlin_python.process.traversal import TraversalStrategy
 from gremlin_python.process.graph_traversal import __
 from gremlin_python.structure.graph import Graph
 from gremlin_python.process.traversal import Barrier, Cardinality, CardinalityValue, P, TextP, Pop, Scope, Column, Order, Direction, DT, Merge, T, Pick, Operator, IO, WithOptions
 
 world.gremlins = {
-    'g_V_branchXlabel_eq_person__a_bX_optionXa__ageX_optionXb__langX_optionXb__nameX': [(lambda g, l1=None:g.V().branch(l1).option('a',__.age).option('b',__.lang).option('b',__.name))], 
-    'g_V_branchXlabel_isXpersonX_countX_optionX1__ageX_optionX0__langX_optionX0__nameX': [(lambda g, xx1=None,xx2=None:g.V().branch(__.label().is_('person').count()).option(xx1,__.age).option(xx2,__.lang).option(xx2,__.name))], 
-    'g_V_branchXlabel_isXpersonX_countX_optionX1__ageX_optionX0__langX_optionX0__nameX_optionXany__labelX': [(lambda g, xx1=None,xx2=None:g.V().branch(__.label().is_('person').count()).option(xx1,__.age).option(xx2,__.lang).option(xx2,__.name).option(Pick.any,__.label()))], 
-    'g_V_branchXageX_optionXltX30X__youngX_optionXgtX30X__oldX_optionXnone__on_the_edgeX': [(lambda g:g.V().hasLabel('person').branch(__.age).option(P.lt(30),__.constant('young')).option(P.gt(30),__.constant('old')).option(Pick.none,__.constant('on the edge')))], 
-    'g_V_branchXidentityX_optionXhasLabelXsoftwareX__inXcreatedX_name_order_foldX_optionXhasXname_vadasX__ageX_optionXneqX123X__bothE_countX': [(lambda g:g.V().branch(__.identity()).option(__.hasLabel('software'),__.in_('created').name.order().fold()).option(__.has('name','vadas'),__.age).option(P.neq(123),__.bothE().count()))], 
-    'g_V_chooseXout_countX_optionX2L_nameX_optionX3L_ageX': [(lambda g, xx1=None,xx2=None:g.V().choose(__.out().count()).option(xx1,__.name).option(xx2,__.age))], 
-    'g_V_chooseXlabel_eqXpersonX__outXknowsX__inXcreatedXX_name': [(lambda g, pred1=None:g.V().choose(pred1,__.out('knows'),__.in_('created')).name)], 
-    'g_V_chooseXhasLabelXpersonX_and_outXcreatedX__outXknowsX__identityX_name': [(lambda g:g.V().choose(__.hasLabel('person').and_().out('created'),__.out('knows'),__.identity()).name)], 
-    'g_V_chooseXlabelX_optionXblah__outXknowsXX_optionXbleep__outXcreatedXX_optionXnone__identityX_name': [(lambda g:g.V().choose(__.label()).option('blah',__.out('knows')).option('bleep',__.out('created')).option(Pick.none,__.identity()).name)], 
-    'g_V_chooseXoutXknowsX_count_isXgtX0XX__outXknowsXX_name': [(lambda g:g.V().choose(__.out('knows').count().is_(P.gt(0)),__.out('knows')).name)], 
-    'g_V_hasLabelXpersonX_asXp1X_chooseXoutEXknowsX__outXknowsXX_asXp2X_selectXp1_p2X_byXnameX': [(lambda g:g.V().hasLabel('person').as_('p1').choose(__.outE('knows'),__.out('knows')).as_('p2').select('p1','p2').by('name'))], 
-    'g_V_hasLabelXpersonX_chooseXageX__optionX27L__constantXyoungXX_optionXnone__constantXoldXX_groupCount': [(lambda g, xx1=None:g.V().hasLabel('person').choose(__.age).option(xx1,__.constant('young')).option(Pick.none,__.constant('old')).groupCount())], 
-    'g_injectX1X_chooseXisX1X__constantX10Xfold__foldX': [(lambda g, xx1=None,xx2=None:g.inject(xx2).choose(__.is_(xx2),__.constant(xx1).fold(),__.fold()))], 
-    'g_injectX2X_chooseXisX1X__constantX10Xfold__foldX': [(lambda g, xx1=None,xx3=None,xx2=None:g.inject(xx3).choose(__.is_(xx2),__.constant(xx1).fold(),__.fold()))], 
-    'g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value': [(lambda g:g.V().local(__.properties('location').order().by(T.value,Order.asc)[0:2]).value())], 
-    'g_V_hasXlabel_personX_asXaX_localXoutXcreatedX_asXbXX_selectXa_bX_byXnameX_byXidX': [(lambda g:g.V().has(T.label,'person').as_('a').local(__.out('created').as_('b')).select('a','b').by('name').by(T.id_))], 
-    'g_V_localXoutE_countX': [(lambda g:g.V().local(__.outE().count()))], 
-    'g_VX1X_localXoutEXknowsX_limitX1XX_inV_name': [(lambda g, vid1=None:g.V(vid1).local(__.outE('knows')[0:1]).in_v().name)], 
-    'g_V_localXbothEXcreatedX_limitX1XX_otherV_name': [(lambda g:g.V().local(__.bothE('created')[0:1]).otherV().name)], 
-    'g_VX4X_localXbothEX1_createdX_limitX1XX': [(lambda g, vid4=None:g.V(vid4).local(__.bothE('created')[0:1]))], 
-    'g_VX4X_localXbothEXknows_createdX_limitX1XX': [(lambda g, vid4=None:g.V(vid4).local(__.bothE('knows','created')[0:1]))], 
-    'g_VX4X_localXbothE_limitX1XX_otherV_name': [(lambda g, vid4=None:g.V(vid4).local(__.bothE()[0:1]).otherV().name)], 
-    'g_VX4X_localXbothE_limitX2XX_otherV_name': [(lambda g, vid4=None:g.V(vid4).local(__.bothE()[0:2]).otherV().name)], 
-    'g_V_localXinEXknowsX_limitX2XX_outV_name': [(lambda g:g.V().local(__.inE('knows')[0:2]).out_v().name)], 
-    'g_V_localXmatchXproject__created_person__person_name_nameX_selectXname_projectX_by_byXnameX': [(lambda g:g.V().local(__.match(__.as_('project').in_('created').as_('person'),__.as_('person').name.as_('name'))).select('name','project').by().by('name'))], 
+    'g_V_branchXlabel_eq_person__a_bX_optionXa__ageX_optionXb__langX_optionXb__nameX': [],  # skipping as it contains a lambda
+    'g_V_branchXlabel_isXpersonX_countX_optionX1__ageX_optionX0__langX_optionX0__nameX': [(lambda g, xx1=None,xx2=None:g.V().branch(__.label().is_('person').count()).option(xx1, __.values('age')).option(xx2, __.values('lang')).option(xx2, __.values('name')))], 
+    'g_V_branchXlabel_isXpersonX_countX_optionX1__ageX_optionX0__langX_optionX0__nameX_optionXany__labelX': [(lambda g, xx1=None,xx2=None:g.V().branch(__.label().is_('person').count()).option(xx1, __.values('age')).option(xx2, __.values('lang')).option(xx2, __.values('name')).option(Pick.any_, __.label()))], 
+    'g_V_branchXageX_optionXltX30X__youngX_optionXgtX30X__oldX_optionXnone__on_the_edgeX': [(lambda g:g.V().has_label('person').branch(__.values('age')).option(P.lt(30), __.constant('young')).option(P.gt(30), __.constant('old')).option(Pick.none, __.constant('on the edge')))], 
+    'g_V_branchXidentityX_optionXhasLabelXsoftwareX__inXcreatedX_name_order_foldX_optionXhasXname_vadasX__ageX_optionXneqX123X__bothE_countX': [(lambda g:g.V().branch(__.identity()).option(__.has_label('software'), __.in_('created').values('name').order().fold()).option(__.has('name', 'vadas'), __.values('age')).option(P.neq(123), __.both_e().count()))], 
+    'g_V_chooseXout_countX_optionX2L_nameX_optionX3L_ageX': [(lambda g, xx1=None,xx2=None:g.V().choose(__.out().count()).option(xx1, __.values('name')).option(xx2, __.values('age')))], 
+    'g_V_chooseXlabel_eqXpersonX__outXknowsX__inXcreatedXX_name': [],  # skipping as it contains a lambda
+    'g_V_chooseXhasLabelXpersonX_and_outXcreatedX__outXknowsX__identityX_name': [(lambda g:g.V().choose(__.has_label('person').and_().out('created'), __.out('knows'), __.identity()).values('name'))], 
+    'g_V_chooseXlabelX_optionXblah__outXknowsXX_optionXbleep__outXcreatedXX_optionXnone__identityX_name': [(lambda g:g.V().choose(__.label()).option('blah', __.out('knows')).option('bleep', __.out('created')).option(Pick.none, __.identity()).values('name'))], 
+    'g_V_chooseXoutXknowsX_count_isXgtX0XX__outXknowsXX_name': [(lambda g:g.V().choose(__.out('knows').count().is_(P.gt(0)), __.out('knows')).values('name'))], 
+    'g_V_hasLabelXpersonX_asXp1X_chooseXoutEXknowsX__outXknowsXX_asXp2X_selectXp1_p2X_byXnameX': [(lambda g:g.V().has_label('person').as_('p1').choose(__.out_e('knows'), __.out('knows')).as_('p2').select('p1', 'p2').by('name'))], 
+    'g_V_hasLabelXpersonX_chooseXageX__optionX27L__constantXyoungXX_optionXnone__constantXoldXX_groupCount': [(lambda g, xx1=None:g.V().has_label('person').choose(__.values('age')).option(xx1, __.constant('young')).option(Pick.none, __.constant('old')).group_count())], 
+    'g_injectX1X_chooseXisX1X__constantX10Xfold__foldX': [(lambda g, xx1=None,xx2=None:g.inject(xx2).choose(__.is_(xx2), __.constant(xx1).fold(), __.fold()))], 
+    'g_injectX2X_chooseXisX1X__constantX10Xfold__foldX': [(lambda g, xx1=None,xx3=None,xx2=None:g.inject(xx3).choose(__.is_(xx2), __.constant(xx1).fold(), __.fold()))], 
+    'g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value': [(lambda g:g.V().local(__.properties('location').order().by(T.value, Order.asc).range_(0, 2)).value())], 
+    'g_V_hasXlabel_personX_asXaX_localXoutXcreatedX_asXbXX_selectXa_bX_byXnameX_byXidX': [(lambda g:g.V().has(T.label, 'person').as_('a').local(__.out('created').as_('b')).select('a', 'b').by('name').by(T.id_))], 
+    'g_V_localXoutE_countX': [(lambda g:g.V().local(__.out_e().count()))], 
+    'g_VX1X_localXoutEXknowsX_limitX1XX_inV_name': [(lambda g, vid1=None:g.V(vid1).local(__.out_e('knows').limit(1)).in_v().values('name'))], 
+    'g_V_localXbothEXcreatedX_limitX1XX_otherV_name': [(lambda g:g.V().local(__.both_e('created').limit(1)).other_v().values('name'))], 
+    'g_VX4X_localXbothEX1_createdX_limitX1XX': [(lambda g, vid4=None:g.V(vid4).local(__.both_e('created').limit(1)))], 
+    'g_VX4X_localXbothEXknows_createdX_limitX1XX': [(lambda g, vid4=None:g.V(vid4).local(__.both_e('knows', 'created').limit(1)))], 
+    'g_VX4X_localXbothE_limitX1XX_otherV_name': [(lambda g, vid4=None:g.V(vid4).local(__.both_e().limit(1)).other_v().values('name'))], 
+    'g_VX4X_localXbothE_limitX2XX_otherV_name': [(lambda g, vid4=None:g.V(vid4).local(__.both_e().limit(2)).other_v().values('name'))], 
+    'g_V_localXinEXknowsX_limitX2XX_outV_name': [(lambda g:g.V().local(__.in_e('knows').limit(2)).out_v().values('name'))], 
+    'g_V_localXmatchXproject__created_person__person_name_nameX_selectXname_projectX_by_byXnameX': [(lambda g:g.V().local(__.match(__.as_('project').in_('created').as_('person'), __.as_('person').values('name').as_('name'))).select('name', 'project').by().by('name'))], 
     'g_VX2X_optionalXoutXknowsXX': [(lambda g, vid2=None:g.V(vid2).optional(__.out('knows')))], 
     'g_VX2X_optionalXinXknowsXX': [(lambda g, vid2=None:g.V(vid2).optional(__.in_('knows')))], 
-    'g_V_hasLabelXpersonX_optionalXoutXknowsX_optionalXoutXcreatedXXX_path': [(lambda g:g.V().hasLabel('person').optional(__.out('knows').optional(__.out('created'))).path())], 
+    'g_V_hasLabelXpersonX_optionalXoutXknowsX_optionalXoutXcreatedXXX_path': [(lambda g:g.V().has_label('person').optional(__.out('knows').optional(__.out('created'))).path())], 
     'g_V_optionalXout_optionalXoutXX_path': [(lambda g:g.V().optional(__.out().optional(__.out())).path())], 
-    'g_VX1X_optionalXaddVXdogXX_label': [(lambda g, vid1=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').property('age',35) [...]
+    'g_VX1X_optionalXaddVXdogXX_label': [(lambda g, vid1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property('name', 'peter').p [...]
     'g_V_repeatXoutX_timesX2X_emit_path': [(lambda g:g.V().repeat(__.out()).times(2).emit().path())], 
-    'g_V_repeatXoutX_timesX2X_repeatXinX_timesX2X_name': [(lambda g:g.V().repeat(__.out()).times(2).repeat(__.in_()).times(2).name)], 
-    'g_V_repeatXoutE_inVX_timesX2X_path_by_name_by_label': [(lambda g:g.V().repeat(__.outE().in_v()).times(2).path().by('name').by(T.label))], 
+    'g_V_repeatXoutX_timesX2X_repeatXinX_timesX2X_name': [(lambda g:g.V().repeat(__.out()).times(2).repeat(__.in_()).times(2).values('name'))], 
+    'g_V_repeatXoutE_inVX_timesX2X_path_by_name_by_label': [(lambda g:g.V().repeat(__.out_e().in_v()).times(2).path().by('name').by(T.label))], 
     'g_V_repeatXoutX_timesX2X': [(lambda g:g.V().repeat(__.out()).times(2))], 
     'g_V_repeatXoutX_timesX2X_emit': [(lambda g:g.V().repeat(__.out()).times(2).emit())], 
-    'g_VX1X_timesX2X_repeatXoutX_name': [(lambda g, vid1=None:g.V(vid1).times(2).repeat(__.out()).name)], 
+    'g_VX1X_timesX2X_repeatXoutX_name': [(lambda g, vid1=None:g.V(vid1).times(2).repeat(__.out()).values('name'))], 
     'g_V_emit_timesX2X_repeatXoutX_path': [(lambda g:g.V().emit().times(2).repeat(__.out()).path())], 
     'g_V_emit_repeatXoutX_timesX2X_path': [(lambda g:g.V().emit().repeat(__.out()).times(2).path())], 
-    'g_VX1X_emitXhasXlabel_personXX_repeatXoutX_name': [(lambda g, vid1=None:g.V(vid1).emit(__.has(T.label,'person')).repeat(__.out()).name)], 
-    'g_V_repeatXgroupCountXmX_byXnameX_outX_timesX2X_capXmX': [(lambda g:g.V().repeat(__.groupCount('m').by('name').out()).times(2).cap('m'))], 
-    'g_VX1X_repeatXgroupCountXmX_byXloopsX_outX_timesX3X_capXmX': [(lambda g, vid1=None:g.V(vid1).repeat(__.groupCount('m').by(__.loops()).out()).times(3).cap('m'))], 
-    'g_V_repeatXbothX_timesX10X_asXaX_out_asXbX_selectXa_bX': [(lambda g:g.V().repeat(__.both()).times(10).as_('a').out().as_('b').select('a','b').count())], 
-    'g_VX1X_repeatXoutX_untilXoutE_count_isX0XX_name': [(lambda g, vid1=None:g.V(vid1).repeat(__.out()).until(__.outE().count().is_(0)).name)], 
-    'g_V_repeatXbothX_untilXname_eq_marko_or_loops_gt_1X_groupCount_byXnameX': [(lambda g, pred1=None:g.V().repeat(__.both()).until(pred1).groupCount().by('name'))], 
-    'g_V_hasXname_markoX_repeatXoutE_inV_simplePathX_untilXhasXname_rippleXX_path_byXnameX_byXlabelX': [(lambda g:g.V().has('name','marko').repeat(__.outE().in_v().simplePath()).until(__.has('name','ripple')).path().by('name').by(T.label))], 
-    'g_V_hasXloop_name_loopX_repeatXinX_timesX5X_path_by_name': [(lambda g:g.V().has('loops','name','loop').repeat(__.in_()).times(5).path().by('name'))], 
-    'g_V_repeatXout_repeatXout_order_byXname_descXX_timesX1XX_timesX1X_limitX1X_path_byXnameX': [(lambda g:g.V().repeat(__.out().repeat(__.out().order().by('name',Order.desc)).times(1)).times(1)[0:1].path().by('name'))], 
-    'g_V_repeatXoutXknowsXX_untilXrepeatXoutXcreatedXX_emitXhasXname_lopXXX_path_byXnameX': [(lambda g:g.V().repeat(__.out('knows')).until(__.repeat(__.out('created')).emit(__.has('name','lop'))).path().by('name'))], 
-    'g_V_repeatXrepeatXout_createdXX_untilXhasXname_rippleXXXemit_lang': [(lambda g:g.V().repeat(__.repeat(__.out('created')).until(__.has('name','ripple'))).emit().lang)], 
-    'g_V_untilXconstantXtrueXX_repeatXrepeatXout_createdXX_untilXhasXname_rippleXXXemit_lang': [(lambda g:g.V().until(__.constant(True)).repeat(__.repeat(__.out('created')).until(__.has('name','ripple'))).emit().lang)], 
-    'g_V_emit_repeatXa_outXknows_filterXloops_isX0XX_lang': [(lambda g:g.V().emit().repeat('a',__.out('knows').filter_(__.loops('a').is_(0))).lang)], 
-    'g_VX3X_repeatXbothX_createdXX_untilXloops_is_40XXemit_repeatXin_knowsXX_emit_loopsXisX1Xdedup_values': [(lambda g, vid3=None:g.V(vid3).repeat(__.both('created')).until(__.loops().is_(40)).emit(__.repeat(__.in_('knows')).emit(__.loops().is_(1))).dedup().name)], 
-    'g_VX1X_repeatXrepeatXunionXout_uses_out_traversesXX_whereXloops_isX0X_timesX1X_timeX2X_name': [(lambda g, vid1=None:g.V(vid1).repeat(__.repeat(__.union(__.out('uses'),__.out('traverses')).where(__.loops().is_(0))).times(1)).times(2).name)], 
-    'g_V_repeatXa_outXknows_repeatXb_outXcreatedX_filterXloops_isX0XX_emit_lang': [(lambda g:g.V().repeat('a',__.out('knows').repeat('b',__.out('created').filter_(__.loops('a').is_(0))).emit()).emit().lang)], 
-    'g_VX6X_repeatXa_bothXcreatedX_simplePathX_emitXrepeatXb_bothXknowsXX_untilXloopsXbX_asXb_whereXloopsXaX_asXbX_hasXname_vadasXX_dedup_name': [(lambda g, vid6=None:g.V(vid6).repeat('a',__.both('created').simplePath()).emit(__.repeat('b',__.both('knows')).until(__.loops('b').as_('b').where(__.loops('a').as_('b'))).has('name','vadas')).dedup().name)], 
+    'g_VX1X_emitXhasXlabel_personXX_repeatXoutX_name': [(lambda g, vid1=None:g.V(vid1).emit(__.has(T.label, 'person')).repeat(__.out()).values('name'))], 
+    'g_V_repeatXgroupCountXmX_byXnameX_outX_timesX2X_capXmX': [(lambda g:g.V().repeat(__.group_count('m').by('name').out()).times(2).cap('m'))], 
+    'g_VX1X_repeatXgroupCountXmX_byXloopsX_outX_timesX3X_capXmX': [(lambda g, vid1=None:g.V(vid1).repeat(__.group_count('m').by(__.loops()).out()).times(3).cap('m'))], 
+    'g_V_repeatXbothX_timesX10X_asXaX_out_asXbX_selectXa_bX': [(lambda g:g.V().repeat(__.both()).times(10).as_('a').out().as_('b').select('a', 'b').count())], 
+    'g_VX1X_repeatXoutX_untilXoutE_count_isX0XX_name': [(lambda g, vid1=None:g.V(vid1).repeat(__.out()).until(__.out_e().count().is_(0)).values('name'))], 
+    'g_V_repeatXbothX_untilXname_eq_marko_or_loops_gt_1X_groupCount_byXnameX': [],  # skipping as it contains a lambda
+    'g_V_hasXname_markoX_repeatXoutE_inV_simplePathX_untilXhasXname_rippleXX_path_byXnameX_byXlabelX': [(lambda g:g.V().has('name', 'marko').repeat(__.out_e().in_v().simple_path()).until(__.has('name', 'ripple')).path().by('name').by(T.label))], 
+    'g_V_hasXloop_name_loopX_repeatXinX_timesX5X_path_by_name': [(lambda g:g.V().has('loops', 'name', 'loop').repeat(__.in_()).times(5).path().by('name'))], 
+    'g_V_repeatXout_repeatXout_order_byXname_descXX_timesX1XX_timesX1X_limitX1X_path_byXnameX': [(lambda g:g.V().repeat(__.out().repeat(__.out().order().by('name', Order.desc)).times(1)).times(1).limit(1).path().by('name'))], 
+    'g_V_repeatXoutXknowsXX_untilXrepeatXoutXcreatedXX_emitXhasXname_lopXXX_path_byXnameX': [(lambda g:g.V().repeat(__.out('knows')).until(__.repeat(__.out('created')).emit(__.has('name', 'lop'))).path().by('name'))], 
+    'g_V_repeatXrepeatXout_createdXX_untilXhasXname_rippleXXXemit_lang': [(lambda g:g.V().repeat(__.repeat(__.out('created')).until(__.has('name', 'ripple'))).emit().values('lang'))], 
+    'g_V_untilXconstantXtrueXX_repeatXrepeatXout_createdXX_untilXhasXname_rippleXXXemit_lang': [(lambda g:g.V().until(__.constant(True)).repeat(__.repeat(__.out('created')).until(__.has('name', 'ripple'))).emit().values('lang'))], 
+    'g_V_emit_repeatXa_outXknows_filterXloops_isX0XX_lang': [(lambda g:g.V().emit().repeat('a', __.out('knows').filter_(__.loops('a').is_(0))).values('lang'))], 
+    'g_VX3X_repeatXbothX_createdXX_untilXloops_is_40XXemit_repeatXin_knowsXX_emit_loopsXisX1Xdedup_values': [(lambda g, vid3=None:g.V(vid3).repeat(__.both('created')).until(__.loops().is_(40)).emit(__.repeat(__.in_('knows')).emit(__.loops().is_(1))).dedup().values('name'))], 
+    'g_VX1X_repeatXrepeatXunionXout_uses_out_traversesXX_whereXloops_isX0X_timesX1X_timeX2X_name': [(lambda g, vid1=None:g.V(vid1).repeat(__.repeat(__.union(__.out('uses'), __.out('traverses')).where(__.loops().is_(0))).times(1)).times(2).values('name'))], 
+    'g_V_repeatXa_outXknows_repeatXb_outXcreatedX_filterXloops_isX0XX_emit_lang': [(lambda g:g.V().repeat('a', __.out('knows').repeat('b', __.out('created').filter_(__.loops('a').is_(0))).emit()).emit().values('lang'))], 
+    'g_VX6X_repeatXa_bothXcreatedX_simplePathX_emitXrepeatXb_bothXknowsXX_untilXloopsXbX_asXb_whereXloopsXaX_asXbX_hasXname_vadasXX_dedup_name': [(lambda g, vid6=None:g.V(vid6).repeat('a', __.both('created').simple_path()).emit(__.repeat('b', __.both('knows')).until(__.loops('b').as_('b').where(__.loops('a').as_('b'))).has('name', 'vadas')).dedup().values('name'))], 
     'g_unionXX': [(lambda g:g.union())], 
-    'g_unionXV_name': [(lambda g:g.union(__.V().name))], 
-    'g_unionXVXv1X_VX4XX_name': [(lambda g, v4=None,v1=None:g.union(__.V(v1),__.V(v4)).name)], 
-    'g_unionXV_hasLabelXsoftwareX_V_hasLabelXpersonXX_name': [(lambda g:g.union(__.V().hasLabel('software'),__.V().hasLabel('person')).name)], 
-    'g_unionXV_out_out_V_hasLabelXsoftwareXX_path': [(lambda g:g.union(__.V().out().out(),__.V().hasLabel('software')).path())], 
-    'g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX': [(lambda g:g.union(__.V().out().out(),__.V().hasLabel('software')).path().by('name'))], 
-    'g_unionXunionXV_out_outX_V_hasLabelXsoftwareXX_path_byXnameX': [(lambda g:g.union(__.union(__.V().out().out()),__.V().hasLabel('software')).path().by('name'))], 
-    'g_unionXinjectX1X_injectX2X': [(lambda g:g.union(__.inject(1),__.inject(2)))], 
-    'g_V_unionXconstantX1X_constantX2X_constantX3XX': [(lambda g, xx1=None,xx3=None,xx2=None,v2=None:g.V(v2).union(__.constant(xx1),__.constant(xx2),__.constant(xx3)))], 
-    'g_V_unionXout__inX_name': [(lambda g:g.V().union(__.out(),__.in_()).name)], 
-    'g_VX1X_unionXrepeatXoutX_timesX2X__outX_name': [(lambda g, vid1=None:g.V(vid1).union(__.repeat(__.out()).times(2),__.out()).name)], 
-    'g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX': [(lambda g:g.V().choose(__.label().is_('person'),__.union(__.out().lang,__.out().name),__.in_().label()))], 
-    'g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX_groupCount': [(lambda g:g.V().choose(__.label().is_('person'),__.union(__.out().lang,__.out().name),__.in_().label()).groupCount())], 
-    'g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount': [(lambda g:g.V().union(__.repeat(__.union(__.out('created'),__.in_('created'))).times(2),__.repeat(__.union(__.in_('created'),__.out('created'))).times(2)).label().groupCount())], 
-    'g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX': [(lambda g, vid2=None,vid1=None:g.V(vid1,vid2).union(__.outE().count(),__.inE().count(),__.outE().weight.sum_()))], 
-    'g_VX1_2X_localXunionXoutE_count__inE_count__outE_weight_sumXX': [(lambda g, vid2=None,vid1=None:g.V(vid1,vid2).local(__.union(__.outE().count(),__.inE().count(),__.outE().weight.sum_())))], 
-    'g_VX1_2X_localXunionXcountXX': [(lambda g, vid2=None,vid1=None:g.V(vid1,vid2).local(__.union(__.count())))], 
-    'g_unionXaddVXpersonX_propertyXname_aliceX_addVXpersonX_propertyXname_bobX_addVXpersonX_propertyXname_chrisX_name': [(lambda g:g.union(__.addV('person').property('name','alice'),__.addV('person').property('name','bob'),__.addV('person').property('name','chris')).name)], 
-    'g_V_valuesXageX_allXgtX32XX': [(lambda g:g.V().age.all_(P.gt(32)))], 
-    'g_V_valuesXageX_whereXisXP_gtX33XXX_fold_allXgtX33XX': [(lambda g:g.V().age.where(__.is_(P.gt(33))).fold().all_(P.gt(33)))], 
-    'g_V_valuesXageX_order_byXdescX_fold_allXgtX10XX': [(lambda g:g.V().age.order().by(Order.desc).fold().all_(P.gt(10)))], 
-    'g_V_valuesXageX_order_byXdescX_fold_allXgtX30XX': [(lambda g:g.V().age.order().by(Order.desc).fold().all_(P.gt(30)))], 
-    'g_injectXabc_bcdX_allXeqXbcdXX': [(lambda g:g.inject(['abc','bcd']).all_(P.eq('bcd')))], 
+    'g_unionXV_name': [(lambda g:g.union(__.V().values('name')))], 
+    'g_unionXVXv1X_VX4XX_name': [(lambda g, v1=None,v4=None:g.union(__.V(v1), __.V(v4)).values('name'))], 
+    'g_unionXV_hasLabelXsoftwareX_V_hasLabelXpersonXX_name': [(lambda g:g.union(__.V().has_label('software'), __.V().has_label('person')).values('name'))], 
+    'g_unionXV_out_out_V_hasLabelXsoftwareXX_path': [(lambda g:g.union(__.V().out().out(), __.V().has_label('software')).path())], 
+    'g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX': [(lambda g:g.union(__.V().out().out(), __.V().has_label('software')).path().by('name'))], 
+    'g_unionXunionXV_out_outX_V_hasLabelXsoftwareXX_path_byXnameX': [(lambda g:g.union(__.union(__.V().out().out()), __.V().has_label('software')).path().by('name'))], 
+    'g_unionXinjectX1X_injectX2X': [(lambda g:g.union(__.inject(1), __.inject(2)))], 
+    'g_V_unionXconstantX1X_constantX2X_constantX3XX': [(lambda g, xx1=None,xx3=None,xx2=None,v2=None:g.V(v2).union(__.constant(xx1), __.constant(xx2), __.constant(xx3)))], 
+    'g_V_unionXout__inX_name': [(lambda g:g.V().union(__.out(), __.in_()).values('name'))], 
+    'g_VX1X_unionXrepeatXoutX_timesX2X__outX_name': [(lambda g, vid1=None:g.V(vid1).union(__.repeat(__.out()).times(2), __.out()).values('name'))], 
+    'g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX': [(lambda g:g.V().choose(__.label().is_('person'), __.union(__.out().values('lang'), __.out().values('name')), __.in_().label()))], 
+    'g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX_groupCount': [(lambda g:g.V().choose(__.label().is_('person'), __.union(__.out().values('lang'), __.out().values('name')), __.in_().label()).group_count())], 
+    'g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount': [(lambda g:g.V().union(__.repeat(__.union(__.out('created'), __.in_('created'))).times(2), __.repeat(__.union(__.in_('created'), __.out('created'))).times(2)).label().group_count())], 
+    'g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX': [(lambda g, vid2=None,vid1=None:g.V(vid1, vid2).union(__.out_e().count(), __.in_e().count(), __.out_e().values('weight').sum_()))], 
+    'g_VX1_2X_localXunionXoutE_count__inE_count__outE_weight_sumXX': [(lambda g, vid2=None,vid1=None:g.V(vid1, vid2).local(__.union(__.out_e().count(), __.in_e().count(), __.out_e().values('weight').sum_())))], 
+    'g_VX1_2X_localXunionXcountXX': [(lambda g, vid2=None,vid1=None:g.V(vid1, vid2).local(__.union(__.count())))], 
+    'g_unionXaddVXpersonX_propertyXname_aliceX_addVXpersonX_propertyXname_bobX_addVXpersonX_propertyXname_chrisX_name': [(lambda g:g.union(__.add_v('person').property('name', 'alice'), __.add_v('person').property('name', 'bob'), __.add_v('person').property('name', 'chris')).values('name'))], 
+    'g_V_valuesXageX_allXgtX32XX': [(lambda g:g.V().values('age').all_(P.gt(32)))], 
+    'g_V_valuesXageX_whereXisXP_gtX33XXX_fold_allXgtX33XX': [(lambda g:g.V().values('age').where(__.is_(P.gt(33))).fold().all_(P.gt(33)))], 
+    'g_V_valuesXageX_order_byXdescX_fold_allXgtX10XX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().all_(P.gt(10)))], 
+    'g_V_valuesXageX_order_byXdescX_fold_allXgtX30XX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().all_(P.gt(30)))], 
+    'g_injectXabc_bcdX_allXeqXbcdXX': [(lambda g:g.inject(['abc', 'bcd']).all_(P.eq('bcd')))], 
     'g_injectXbcd_bcdX_allXeqXbcdXX': [(lambda g, xx1=None:g.inject(xx1).all_(P.eq('bcd')))], 
-    'g_injectXnull_abcX_allXTextP_startingWithXaXX': [(lambda g, xx1=None:g.inject(xx1).all_(TextP.startingWith('a')))], 
-    'g_injectX5_8_10_10_7X_allXgteX7XX': [(lambda g, xx1=None,xx2=None:g.inject(xx1,xx2).all_(P.gte(7)))], 
+    'g_injectXnull_abcX_allXTextP_startingWithXaXX': [(lambda g, xx1=None:g.inject(xx1).all_(TextP.starting_with('a')))], 
+    'g_injectX5_8_10_10_7X_allXgteX7XX': [(lambda g, xx1=None,xx2=None:g.inject(xx1, xx2).all_(P.gte(7)))], 
     'g_injectXnullX_allXeqXnullXX': [(lambda g:g.inject(None).all_(P.eq(None)))], 
     'g_injectX7X_allXeqX7XX': [(lambda g:g.inject(7).all_(P.eq(7)))], 
     'g_injectXnull_nullX_allXeqXnullXX': [(lambda g, xx1=None:g.inject(xx1).all_(P.eq(None)))], 
     'g_injectX3_threeX_allXeqX3XX': [(lambda g, xx1=None:g.inject(xx1).all_(P.eq(3)))], 
-    'g_V_andXhasXage_gt_27X__outE_count_gte_2X_name': [(lambda g:g.V().and_(__.has('age',P.gt(27)),__.outE().count().is_(P.gte(2))).name)], 
-    'g_V_andXoutE__hasXlabel_personX_and_hasXage_gte_32XX_name': [(lambda g:g.V().and_(__.outE(),__.has(T.label,'person').and_().has('age',P.gte(32))).name)], 
-    'g_V_asXaX_outXknowsX_and_outXcreatedX_inXcreatedX_asXaX_name': [(lambda g:g.V().as_('a').out('knows').and_().out('created').in_('created').as_('a').name)], 
-    'g_V_asXaX_andXselectXaX_selectXaXX': [(lambda g:g.V().as_('a').and_(__.select('a'),__.select('a')))], 
-    'g_V_hasXname_markoX_and_hasXname_markoX_and_hasXname_markoX': [(lambda g:g.V().has('name','marko').and_().has('name','marko').and_().has('name','marko'))], 
-    'g_V_valuesXageX_anyXgtX32XX': [(lambda g:g.V().age.any_(P.gt(32)))], 
-    'g_V_valuesXageX_order_byXdescX_fold_anyXeqX29XX': [(lambda g:g.V().age.order().by(Order.desc).fold().any_(P.eq(29)))], 
-    'g_V_valuesXageX_order_byXdescX_fold_anyXgtX10XX': [(lambda g:g.V().age.order().by(Order.desc).fold().any_(P.gt(10)))], 
-    'g_V_valuesXageX_order_byXdescX_fold_anyXgtX42XX': [(lambda g:g.V().age.order().by(Order.desc).fold().any_(P.gt(42)))], 
-    'g_injectXabc_cdeX_anyXeqXbcdXX': [(lambda g:g.inject(['abc','cde']).any_(P.eq('bcd')))], 
+    'g_V_andXhasXage_gt_27X__outE_count_gte_2X_name': [(lambda g:g.V().and_(__.has('age', P.gt(27)), __.out_e().count().is_(P.gte(2))).values('name'))], 
+    'g_V_andXoutE__hasXlabel_personX_and_hasXage_gte_32XX_name': [(lambda g:g.V().and_(__.out_e(), __.has(T.label, 'person').and_().has('age', P.gte(32))).values('name'))], 
+    'g_V_asXaX_outXknowsX_and_outXcreatedX_inXcreatedX_asXaX_name': [(lambda g:g.V().as_('a').out('knows').and_().out('created').in_('created').as_('a').values('name'))], 
+    'g_V_asXaX_andXselectXaX_selectXaXX': [(lambda g:g.V().as_('a').and_(__.select('a'), __.select('a')))], 
+    'g_V_hasXname_markoX_and_hasXname_markoX_and_hasXname_markoX': [(lambda g:g.V().has('name', 'marko').and_().has('name', 'marko').and_().has('name', 'marko'))], 
+    'g_V_valuesXageX_anyXgtX32XX': [(lambda g:g.V().values('age').any_(P.gt(32)))], 
+    'g_V_valuesXageX_order_byXdescX_fold_anyXeqX29XX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().any_(P.eq(29)))], 
+    'g_V_valuesXageX_order_byXdescX_fold_anyXgtX10XX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().any_(P.gt(10)))], 
+    'g_V_valuesXageX_order_byXdescX_fold_anyXgtX42XX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().any_(P.gt(42)))], 
+    'g_injectXabc_cdeX_anyXeqXbcdXX': [(lambda g:g.inject(['abc', 'cde']).any_(P.eq('bcd')))], 
     'g_injectXabc_bcdX_anyXeqXbcdXX': [(lambda g, xx1=None:g.inject(xx1).any_(P.eq('bcd')))], 
-    'g_injectXnull_abcX_anyXTextP_startingWithXaXX': [(lambda g, xx1=None:g.inject(xx1).any_(TextP.startingWith('a')))], 
-    'g_injectX5_8_10_10_7X_anyXeqX7XX': [(lambda g, xx1=None,xx2=None:g.inject(xx1,xx2).any_(P.eq(7)))], 
+    'g_injectXnull_abcX_anyXTextP_startingWithXaXX': [(lambda g, xx1=None:g.inject(xx1).any_(TextP.starting_with('a')))], 
+    'g_injectX5_8_10_10_7X_anyXeqX7XX': [(lambda g, xx1=None,xx2=None:g.inject(xx1, xx2).any_(P.eq(7)))], 
     'g_injectXnullX_anyXeqXnullXX': [(lambda g:g.inject(None).any_(P.eq(None)))], 
     'g_injectX7X_anyXeqX7XX': [(lambda g:g.inject(7).any_(P.eq(7)))], 
     'g_injectXnull_nullX_anyXeqXnullXX': [(lambda g, xx1=None:g.inject(xx1).any_(P.eq(None)))], 
     'g_injectX3_threeX_anyXeqX3XX': [(lambda g, xx1=None:g.inject(xx1).any_(P.eq(3)))], 
-    'g_V_coinX1X': [(lambda g:g.V().coin(float(1.0)))], 
-    'g_V_coinX0X': [(lambda g:g.V().coin(float(0.0)))], 
-    'g_withStrategiesXSeedStrategyX_V_order_byXnameX_coinX50X': [(lambda g:g.withStrategies(*[TraversalStrategy('SeedStrategy',{'seed':999999,'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy')]).V().order().by('name').coin(float(0.5)))], 
-    'g_VX1X_outXcreatedX_inXcreatedX_cyclicPath': [(lambda g, vid1=None:g.V(vid1).out('created').in_('created').cyclicPath())], 
-    'g_VX1X_both_both_cyclicPath_byXageX': [(lambda g, vid1=None:g.V(vid1).both().both().cyclicPath().by('age'))], 
-    'g_VX1X_outXcreatedX_inXcreatedX_cyclicPath_path': [(lambda g, vid1=None:g.V(vid1).out('created').in_('created').cyclicPath().path())], 
-    'g_VX1X_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_cyclicPath_fromXaX_toXbX_path': [(lambda g, vid1=None:g.V(vid1).as_('a').out('created').as_('b').in_('created').as_('c').cyclicPath().from_('a').to('b').path())], 
-    'g_injectX0X_V_both_coalesceXhasXname_markoX_both_constantX0XX_cyclicPath_path': [(lambda g:g.inject(0).V().both().coalesce(__.has('name','marko').both(),__.constant(0)).cyclicPath().path())], 
-    'g_V_out_in_valuesXnameX_fold_dedupXlocalX_unfold': [(lambda g:g.V().out().in_().name.fold().dedup(Scope.local).unfold())], 
-    'g_V_out_in_valuesXnameX_fold_dedupXlocalX': [(lambda g:g.V().out().map(__.in_().name.fold().dedup(Scope.local)))], 
-    'g_V_out_asXxX_in_asXyX_selectXx_yX_byXnameX_fold_dedupXlocal_x_yX_unfold': [(lambda g:g.V().out().as_('x').in_().as_('y').select('x','y').by('name').fold().dedup(Scope.local,'x','y').unfold())], 
-    'g_V_both_dedup_name': [(lambda g:g.V().both().dedup().name)], 
-    'g_V_both_hasXlabel_softwareX_dedup_byXlangX_name': [(lambda g:g.V().both().has(T.label,'software').dedup().by('lang').name)], 
+    'g_V_coinX1X': [(lambda g:g.V().coin(1.0))], 
+    'g_V_coinX0X': [(lambda g:g.V().coin(0.0))], 
+    'g_withStrategiesXSeedStrategyX_V_order_byXnameX_coinX50X': [(lambda g:g.with_strategies(SeedStrategy(seed=999999)).V().order().by('name').coin(0.5))], 
+    'g_VX1X_outXcreatedX_inXcreatedX_cyclicPath': [(lambda g, vid1=None:g.V(vid1).out('created').in_('created').cyclic_path())], 
+    'g_VX1X_both_both_cyclicPath_byXageX': [(lambda g, vid1=None:g.V(vid1).both().both().cyclic_path().by('age'))], 
+    'g_VX1X_outXcreatedX_inXcreatedX_cyclicPath_path': [(lambda g, vid1=None:g.V(vid1).out('created').in_('created').cyclic_path().path())], 
+    'g_VX1X_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_cyclicPath_fromXaX_toXbX_path': [(lambda g, vid1=None:g.V(vid1).as_('a').out('created').as_('b').in_('created').as_('c').cyclic_path().from_('a').to('b').path())], 
+    'g_injectX0X_V_both_coalesceXhasXname_markoX_both_constantX0XX_cyclicPath_path': [(lambda g:g.inject(0).V().both().coalesce(__.has('name', 'marko').both(), __.constant(0)).cyclic_path().path())], 
+    'g_V_out_in_valuesXnameX_fold_dedupXlocalX_unfold': [(lambda g:g.V().out().in_().values('name').fold().dedup(Scope.local).unfold())], 
+    'g_V_out_in_valuesXnameX_fold_dedupXlocalX': [(lambda g:g.V().out().map(__.in_().values('name').fold().dedup(Scope.local)))], 
+    'g_V_out_asXxX_in_asXyX_selectXx_yX_byXnameX_fold_dedupXlocal_x_yX_unfold': [(lambda g:g.V().out().as_('x').in_().as_('y').select('x', 'y').by('name').fold().dedup(Scope.local, 'x', 'y').unfold())], 
+    'g_V_both_dedup_name': [(lambda g:g.V().both().dedup().values('name'))], 
+    'g_V_both_hasXlabel_softwareX_dedup_byXlangX_name': [(lambda g:g.V().both().has(T.label, 'software').dedup().by('lang').values('name'))], 
     'g_V_both_name_order_byXa_bX_dedup_value': [(lambda g, c1=None:g.V().both().properties('name').order().by(c1).dedup().value())], 
-    'g_V_both_both_name_dedup': [(lambda g:g.V().both().both().name.dedup())], 
+    'g_V_both_both_name_dedup': [(lambda g:g.V().both().both().values('name').dedup())], 
     'g_V_both_both_dedup': [(lambda g:g.V().both().both().dedup())], 
     'g_V_both_both_dedup_byXlabelX': [(lambda g:g.V().both().both().dedup().by(T.label))], 
-    'g_V_group_byXlabelX_byXbothE_weight_dedup_foldX': [(lambda g:g.V().group().by(T.label).by(__.bothE().weight.dedup().order().by(Order.asc).fold()))], 
-    'g_V_asXaX_both_asXbX_dedupXa_bX_byXlabelX_selectXa_bX': [(lambda g:g.V().as_('a').both().as_('b').dedup('a','b').by(T.label).select('a','b'))], 
-    'g_V_asXaX_out_asXbX_in_asXcX_dedupXa_bX_path_byXnameX': [(lambda g:g.addV('person').property('name','alice').as_('a').addV('person').property('name','bob').as_('b').addV('person').property('name','carol').as_('c').addE('knows').from_('a').to('b').addE('likes').from_('a').to('b').addE('likes').from_('a').to('c')), (lambda g:g.V().as_('a').out().as_('b').in_().as_('c').dedup('a','b').path().by('name'))], 
-    'g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup': [(lambda g:g.V().outE().as_('e').in_v().as_('v').select('e').order().by('weight',Order.asc).select('v').name.dedup())], 
-    'g_V_both_both_dedup_byXoutE_countX_name': [(lambda g:g.V().both().both().dedup().by(__.outE().count()).name)], 
-    'g_V_groupCount_selectXvaluesX_unfold_dedup': [(lambda g:g.V().groupCount().select(Column.values).unfold().dedup())], 
-    'g_V_asXaX_repeatXbothX_timesX3X_emit_name_asXbX_group_byXselectXaXX_byXselectXbX_dedup_order_foldX_selectXvaluesX_unfold_dedup': [(lambda g:g.V().as_('a').repeat(__.both()).times(3).emit().name.as_('b').group().by(__.select('a')).by(__.select('b').dedup().order().fold()).select(Column.values).unfold().dedup())], 
+    'g_V_group_byXlabelX_byXbothE_weight_dedup_foldX': [(lambda g:g.V().group().by(T.label).by(__.both_e().values('weight').dedup().order().by(Order.asc).fold()))], 
+    'g_V_asXaX_both_asXbX_dedupXa_bX_byXlabelX_selectXa_bX': [(lambda g:g.V().as_('a').both().as_('b').dedup('a', 'b').by(T.label).select('a', 'b'))], 
+    'g_V_asXaX_out_asXbX_in_asXcX_dedupXa_bX_path_byXnameX': [(lambda g:g.add_v('person').property('name', 'alice').as_('a').add_v('person').property('name', 'bob').as_('b').add_v('person').property('name', 'carol').as_('c').add_e('knows').from_('a').to('b').add_e('likes').from_('a').to('b').add_e('likes').from_('a').to('c')), (lambda g:g.V().as_('a').out().as_('b').in_().as_('c').dedup('a', 'b').path().by('name'))], 
+    'g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup': [(lambda g:g.V().out_e().as_('e').in_v().as_('v').select('e').order().by('weight', Order.asc).select('v').values('name').dedup())], 
+    'g_V_both_both_dedup_byXoutE_countX_name': [(lambda g:g.V().both().both().dedup().by(__.out_e().count()).values('name'))], 
+    'g_V_groupCount_selectXvaluesX_unfold_dedup': [(lambda g:g.V().group_count().select(Column.values).unfold().dedup())], 
+    'g_V_asXaX_repeatXbothX_timesX3X_emit_name_asXbX_group_byXselectXaXX_byXselectXbX_dedup_order_foldX_selectXvaluesX_unfold_dedup': [(lambda g:g.V().as_('a').repeat(__.both()).times(3).emit().values('name').as_('b').group().by(__.select('a')).by(__.select('b').dedup().order().fold()).select(Column.values).unfold().dedup())], 
     'g_V_repeatXdedupX_timesX2X_count': [(lambda g:g.V().repeat(__.dedup()).times(2).count())], 
-    'g_V_both_group_by_byXout_dedup_foldX_unfold_selectXvaluesX_unfold_out_order_byXnameX_limitX1X_valuesXnameX': [(lambda g:g.V().both().group().by().by(__.out().dedup().fold()).unfold().select(Column.values).unfold().out().order().by('name')[0:1].name)], 
-    'g_V_bothE_properties_dedup_count': [(lambda g:g.V().bothE().properties().dedup().count())], 
+    'g_V_both_group_by_byXout_dedup_foldX_unfold_selectXvaluesX_unfold_out_order_byXnameX_limitX1X_valuesXnameX': [(lambda g:g.V().both().group().by().by(__.out().dedup().fold()).unfold().select(Column.values).unfold().out().order().by('name').limit(1).values('name'))], 
+    'g_V_bothE_properties_dedup_count': [(lambda g:g.V().both_e().properties().dedup().count())], 
     'g_V_both_properties_dedup_count': [(lambda g:g.V().both().properties().dedup().count())], 
     'g_V_both_properties_properties_dedup_count': [(lambda g:g.V().both().properties().properties().dedup().count())], 
-    'g_V_order_byXname_descX_barrier_dedup_age_name': [(lambda g:g.V().order().by('name',Order.desc).barrier().dedup().by('age').name)], 
-    'g_withStrategiesXProductiveByStrategyX_V_order_byXname_descX_barrier_dedup_age_name': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().order().by('name',Order.desc).barrier().dedup().by('age').name)], 
-    'g_V_both_dedup_age_name': [(lambda g:g.V().both().dedup().by('age').name)], 
-    'g_VX1X_asXaX_both_asXbX_both_asXcX_dedupXa_bX_age_selectXa_b_cX_name': [(lambda g, vid1=None:g.V(vid1).as_('a').both().as_('b').both().as_('c').dedup('a','b').by('age').select('a','b','c').by('name'))], 
-    'g_VX1X_valuesXageX_dedupXlocalX_unfold': [(lambda g, vid1=None:g.V(vid1).age.dedup(Scope.local).unfold())], 
-    'g_V_drop': [(lambda g:g.addV().as_('a').addV().as_('b').addE('knows').to('a')), (lambda g:g.V().drop()), (lambda g:g.V()), (lambda g:g.E())], 
-    'g_V_outE_drop': [(lambda g:g.addV().as_('a').addV().as_('b').addE('knows').to('a')), (lambda g:g.V().outE().drop()), (lambda g:g.V()), (lambda g:g.E())], 
-    'g_V_properties_drop': [(lambda g:g.addV().property('name','bob').addV().property('name','alice')), (lambda g:g.V().properties().drop()), (lambda g:g.V()), (lambda g:g.V().properties())], 
-    'g_E_propertiesXweightX_drop': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').property('age',35).as_('peter').ad [...]
-    'g_V_properties_propertiesXstartTimeX_drop': [(lambda g:g.addV().property('name','bob').property(Cardinality.list_,'location','ny','startTime',2014,'endTime',2016).property(Cardinality.list_,'location','va','startTime',2016).addV().property('name','alice').property(Cardinality.list_,'location','va','startTime',2014,'endTime',2016).property(Cardinality.list_,'location','ny','startTime',2016)), (lambda g:g.V().properties().properties('startTime').drop()), (lambda g:g.V().properties().p [...]
-    'g_V_filterXfalseX': [(lambda g, pred1=None:g.V().filter_(pred1))], 
-    'g_V_filterXtrueX': [(lambda g, pred1=None:g.V().filter_(pred1))], 
-    'g_V_filterXlang_eq_javaX': [(lambda g, pred1=None:g.V().filter_(pred1))], 
-    'g_VX1X_filterXage_gt_30X': [(lambda g, vid1=None,pred1=None:g.V(vid1).filter_(pred1))], 
-    'g_VX2X_filterXage_gt_30X': [(lambda g, vid2=None,pred1=None:g.V(vid2).filter_(pred1))], 
-    'g_VX1X_out_filterXage_gt_30X': [(lambda g, vid1=None,pred1=None:g.V(vid1).out().filter_(pred1))], 
-    'g_V_filterXname_startsWith_m_OR_name_startsWith_pX': [(lambda g, pred1=None:g.V().filter_(pred1))], 
-    'g_E_filterXfalseX': [(lambda g, pred1=None:g.E().filter_(pred1))], 
-    'g_E_filterXtrueX': [(lambda g, pred1=None:g.E().filter_(pred1))], 
-    'g_V_outXcreatedX_hasXname__mapXlengthX_isXgtX3XXX_name': [(lambda g, l1=None:g.V().out('created').has('name',__.map(l1).is_(P.gt(3))).name)], 
+    'g_V_order_byXname_descX_barrier_dedup_age_name': [(lambda g:g.V().order().by('name', Order.desc).barrier().dedup().by('age').values('name'))], 
+    'g_withStrategiesXProductiveByStrategyX_V_order_byXname_descX_barrier_dedup_age_name': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().order().by('name', Order.desc).barrier().dedup().by('age').values('name'))], 
+    'g_V_both_dedup_age_name': [(lambda g:g.V().both().dedup().by('age').values('name'))], 
+    'g_VX1X_asXaX_both_asXbX_both_asXcX_dedupXa_bX_age_selectXa_b_cX_name': [(lambda g, vid1=None:g.V(vid1).as_('a').both().as_('b').both().as_('c').dedup('a', 'b').by('age').select('a', 'b', 'c').by('name'))], 
+    'g_VX1X_valuesXageX_dedupXlocalX_unfold': [(lambda g, vid1=None:g.V(vid1).values('age').dedup(Scope.local).unfold())], 
+    'g_V_drop': [(lambda g:g.add_v().as_('a').add_v().as_('b').add_e('knows').to('a')), (lambda g:g.V().drop()), (lambda g:g.V()), (lambda g:g.E())], 
+    'g_V_outE_drop': [(lambda g:g.add_v().as_('a').add_v().as_('b').add_e('knows').to('a')), (lambda g:g.V().out_e().drop()), (lambda g:g.V()), (lambda g:g.E())], 
+    'g_V_properties_drop': [(lambda g:g.add_v().property('name', 'bob').add_v().property('name', 'alice')), (lambda g:g.V().properties().drop()), (lambda g:g.V()), (lambda g:g.V().properties())], 
+    'g_E_propertiesXweightX_drop': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property('name', 'peter').property('age', 3 [...]
+    'g_V_properties_propertiesXstartTimeX_drop': [(lambda g:g.add_v().property('name', 'bob').property(Cardinality.list_, 'location', 'ny', 'startTime', 2014, 'endTime', 2016).property(Cardinality.list_, 'location', 'va', 'startTime', 2016).add_v().property('name', 'alice').property(Cardinality.list_, 'location', 'va', 'startTime', 2014, 'endTime', 2016).property(Cardinality.list_, 'location', 'ny', 'startTime', 2016)), (lambda g:g.V().properties().properties('startTime').drop()), (lambd [...]
+    'g_V_filterXfalseX': [],  # skipping as it contains a lambda
+    'g_V_filterXtrueX': [],  # skipping as it contains a lambda
+    'g_V_filterXlang_eq_javaX': [],  # skipping as it contains a lambda
+    'g_VX1X_filterXage_gt_30X': [],  # skipping as it contains a lambda
+    'g_VX2X_filterXage_gt_30X': [],  # skipping as it contains a lambda
+    'g_VX1X_out_filterXage_gt_30X': [],  # skipping as it contains a lambda
+    'g_V_filterXname_startsWith_m_OR_name_startsWith_pX': [],  # skipping as it contains a lambda
+    'g_E_filterXfalseX': [],  # skipping as it contains a lambda
+    'g_E_filterXtrueX': [],  # skipping as it contains a lambda
+    'g_V_outXcreatedX_hasXname__mapXlengthX_isXgtX3XXX_name': [],  # skipping as it contains a lambda
     'g_VX1X_hasXnameX': [(lambda g, vid1=None:g.V(vid1).has('name'))], 
     'g_VX1X_hasXcircumferenceX': [(lambda g, vid1=None:g.V(vid1).has('circumference'))], 
-    'g_VX1X_hasXname_markoX': [(lambda g, vid1=None:g.V(vid1).has('name','marko'))], 
-    'g_VX2X_hasXname_markoX': [(lambda g, vid1=None:g.V(vid1).has('name','marko'))], 
-    'g_V_hasXname_markoX': [(lambda g:g.V().has('name','marko'))], 
-    'g_V_hasXname_blahX': [(lambda g:g.V().has('name','blah'))], 
-    'g_V_hasXage_gt_30X': [(lambda g:g.V().has('age',P.gt(30)))], 
-    'g_V_hasXage_isXgt_30XX': [(lambda g:g.V().has('age',__.is_(P.gt(30))))], 
-    'g_V_hasXlabel_isXsoftwareXX': [(lambda g:g.V().has(T.label,__.is_('software')))], 
-    'g_VX1X_hasXage_gt_30X': [(lambda g, vid1=None:g.V(vid1).has('age',P.gt(30)))], 
-    'g_VX4X_hasXage_gt_30X': [(lambda g, vid4=None:g.V(vid4).has('age',P.gt(30)))], 
-    'g_VXv1X_hasXage_gt_30X': [(lambda g, v1=None:g.V(v1).has('age',P.gt(30)))], 
-    'g_VXv4X_hasXage_gt_30X': [(lambda g, v4=None:g.V(v4).has('age',P.gt(30)))], 
-    'g_VX1X_out_hasXid_2X': [(lambda g, v2=None:g.V(v2).has('age',P.gt(30)))], 
+    'g_VX1X_hasXname_markoX': [(lambda g, vid1=None:g.V(vid1).has('name', 'marko'))], 
+    'g_VX2X_hasXname_markoX': [(lambda g, vid1=None:g.V(vid1).has('name', 'marko'))], 
+    'g_V_hasXname_markoX': [(lambda g:g.V().has('name', 'marko'))], 
+    'g_V_hasXname_blahX': [(lambda g:g.V().has('name', 'blah'))], 
+    'g_V_hasXage_gt_30X': [(lambda g:g.V().has('age', P.gt(30)))], 
+    'g_V_hasXage_isXgt_30XX': [(lambda g:g.V().has('age', __.is_(P.gt(30))))], 
+    'g_V_hasXlabel_isXsoftwareXX': [(lambda g:g.V().has(T.label, __.is_('software')))], 
+    'g_VX1X_hasXage_gt_30X': [(lambda g, vid1=None:g.V(vid1).has('age', P.gt(30)))], 
+    'g_VX4X_hasXage_gt_30X': [(lambda g, vid4=None:g.V(vid4).has('age', P.gt(30)))], 
+    'g_VXv1X_hasXage_gt_30X': [(lambda g, v1=None:g.V(v1).has('age', P.gt(30)))], 
+    'g_VXv4X_hasXage_gt_30X': [(lambda g, v4=None:g.V(v4).has('age', P.gt(30)))], 
+    'g_VX1X_out_hasXid_2X': [(lambda g, v2=None:g.V(v2).has('age', P.gt(30)))], 
     'g_V_hasXblahX': [(lambda g:g.V().has('blah'))], 
-    'g_V_hasXperson_name_markoX_age': [(lambda g:g.V().has('person','name','marko').age)], 
-    'g_VX1X_outE_hasXweight_inside_0_06X_inV': [(lambda g, vid1=None:g.V(vid1).outE().has('weight',P.gt(float(0.0)).and_(P.lt(float(0.6)))).in_v())], 
-    'g_EX11X_outV_outE_hasXid_10X': [(lambda g, eid11=None,eid10=None:g.E(eid11).out_v().outE().has(T.id_,eid10))], 
-    'g_EX11X_outV_outE_hasXid_10AsStringX': [(lambda g, eid11=None,eid10=None:g.E(eid11).out_v().outE().has(T.id_,eid10))], 
+    'g_V_hasXperson_name_markoX_age': [(lambda g:g.V().has('person', 'name', 'marko').values('age'))], 
+    'g_VX1X_outE_hasXweight_inside_0_06X_inV': [(lambda g, vid1=None:g.V(vid1).out_e().has('weight', P.inside(0.0, 0.6)).in_v())], 
+    'g_EX11X_outV_outE_hasXid_10X': [(lambda g, eid11=None,eid10=None:g.E(eid11).out_v().out_e().has(T.id_, eid10))], 
+    'g_EX11X_outV_outE_hasXid_10AsStringX': [(lambda g, eid11=None,eid10=None:g.E(eid11).out_v().out_e().has(T.id_, eid10))], 
     'g_V_hasXlocationX': [(lambda g:g.V().has('location'))], 
-    'g_V_hasXage_withinX27X_count': [(lambda g:g.V().has('age',P.within([27])).count())], 
-    'g_V_hasXage_withinX27_nullX_count': [(lambda g:g.V().has('age',P.within([27,None])).count())], 
-    'g_V_hasXage_withinX27_29X_count': [(lambda g:g.V().has('age',P.within([27,29])).count())], 
-    'g_V_hasXage_withoutX27X_count': [(lambda g:g.V().has('age',P.without([27])).count())], 
-    'g_V_hasXage_withoutX27_29X_count': [(lambda g:g.V().has('age',P.without([27,29])).count())], 
-    'g_V_hasXperson_age_withinX': [(lambda g:g.V().has('person','age',P.within([])))], 
-    'g_V_hasXperson_age_withoutX': [(lambda g:g.V().has('person','age',P.without([])))], 
-    'g_V_hasXname_containingXarkXX': [(lambda g:g.V().has('name',TextP.containing('ark')))], 
-    'g_V_hasXname_startingWithXmarXX': [(lambda g:g.V().has('name',TextP.startingWith('mar')))], 
-    'g_V_hasXname_endingWithXasXX': [(lambda g:g.V().has('name',TextP.endingWith('as')))], 
-    'g_V_hasXperson_name_containingXoX_andXltXmXXX': [(lambda g:g.V().has('person','name',TextP.containing('o').and_(P.lt('m'))))], 
-    'g_V_hasXname_gtXmX_andXcontainingXoXXX': [(lambda g:g.V().has('name',P.gt('m').and_(TextP.containing('o'))))], 
-    'g_V_hasXname_not_containingXarkXX': [(lambda g:g.V().has('name',TextP.notContaining('ark')))], 
-    'g_V_hasXname_not_startingWithXmarXX': [(lambda g:g.V().has('name',TextP.notStartingWith('mar')))], 
-    'g_V_hasXname_not_endingWithXasXX': [(lambda g:g.V().has('name',TextP.notEndingWith('as')))], 
-    'g_V_hasXname_regexXrMarXX': [(lambda g:g.V().has('name',TextP.regex('^mar')))], 
-    'g_V_hasXname_notRegexXrMarXX': [(lambda g:g.V().has('name',TextP.not_regex('^mar')))], 
-    'g_V_hasXname_regexXTinkerXX': [(lambda g:g.addV('software').property('name','Apache TinkerPop©')), (lambda g:g.V().has('name',TextP.regex('Tinker')).name)], 
-    'g_V_hasXname_regexXTinkerUnicodeXX': [(lambda g:g.addV('software').property('name','Apache TinkerPop©')), (lambda g:g.V().has('name',TextP.regex('Tinker.*©')).name)], 
-    'g_V_hasXp_neqXvXX': [(lambda g:g.V().has('p',P.neq('v')))], 
-    'g_V_hasXage_gtX18X_andXltX30XXorXgtx35XXX': [(lambda g:g.V().has('age',P.gt(18).and_(P.lt(30)).or_(P.gt(35))))], 
-    'g_V_hasXage_gtX18X_andXltX30XXorXltx35XXX': [(lambda g:g.V().has('age',P.gt(18).and_(P.lt(30)).and_(P.lt(35))))], 
-    'g_V_hasXk_withinXcXX_valuesXkX': [(lambda g:g.addV().property('k','轉注').addV().property('k','✦').addV().property('k','♠').addV().property('k','A')), (lambda g:g.V().has('k',P.within(['轉注','✦','♠'])).k)], 
+    'g_V_hasXage_withinX27X_count': [(lambda g:g.V().has('age', P.within(27)).count())], 
+    'g_V_hasXage_withinX27_nullX_count': [(lambda g:g.V().has('age', P.within(27, None)).count())], 
+    'g_V_hasXage_withinX27_29X_count': [(lambda g:g.V().has('age', P.within(27, 29)).count())], 
+    'g_V_hasXage_withoutX27X_count': [(lambda g:g.V().has('age', P.without(27)).count())], 
+    'g_V_hasXage_withoutX27_29X_count': [(lambda g:g.V().has('age', P.without(27, 29)).count())], 
+    'g_V_hasXperson_age_withinX': [(lambda g:g.V().has('person', 'age', P.within()))], 
+    'g_V_hasXperson_age_withoutX': [(lambda g:g.V().has('person', 'age', P.without()))], 
+    'g_V_hasXname_containingXarkXX': [(lambda g:g.V().has('name', TextP.containing('ark')))], 
+    'g_V_hasXname_startingWithXmarXX': [(lambda g:g.V().has('name', TextP.starting_with('mar')))], 
+    'g_V_hasXname_endingWithXasXX': [(lambda g:g.V().has('name', TextP.ending_with('as')))], 
+    'g_V_hasXperson_name_containingXoX_andXltXmXXX': [(lambda g:g.V().has('person', 'name', TextP.containing('o').and_(P.lt('m'))))], 
+    'g_V_hasXname_gtXmX_andXcontainingXoXXX': [(lambda g:g.V().has('name', P.gt('m').and_(TextP.containing('o'))))], 
+    'g_V_hasXname_not_containingXarkXX': [(lambda g:g.V().has('name', TextP.not_containing('ark')))], 
+    'g_V_hasXname_not_startingWithXmarXX': [(lambda g:g.V().has('name', TextP.not_starting_with('mar')))], 
+    'g_V_hasXname_not_endingWithXasXX': [(lambda g:g.V().has('name', TextP.not_ending_with('as')))], 
+    'g_V_hasXname_regexXrMarXX': [(lambda g:g.V().has('name', TextP.regex('^mar')))], 
+    'g_V_hasXname_notRegexXrMarXX': [(lambda g:g.V().has('name', TextP.not_regex('^mar')))], 
+    'g_V_hasXname_regexXTinkerXX': [(lambda g:g.add_v('software').property('name', 'Apache TinkerPop©')), (lambda g:g.V().has('name', TextP.regex('Tinker')).values('name'))], 
+    'g_V_hasXname_regexXTinkerUnicodeXX': [(lambda g:g.add_v('software').property('name', 'Apache TinkerPop©')), (lambda g:g.V().has('name', TextP.regex('Tinker.*\u00A9')).values('name'))], 
+    'g_V_hasXp_neqXvXX': [(lambda g:g.V().has('p', P.neq('v')))], 
+    'g_V_hasXage_gtX18X_andXltX30XXorXgtx35XXX': [(lambda g:g.V().has('age', P.gt(18).and_(P.lt(30)).or_(P.gt(35))))], 
+    'g_V_hasXage_gtX18X_andXltX30XXorXltx35XXX': [(lambda g:g.V().has('age', P.gt(18).and_(P.lt(30)).and_(P.lt(35))))], 
+    'g_V_hasXk_withinXcXX_valuesXkX': [(lambda g:g.add_v().property('k', '轉注').add_v().property('k', '✦').add_v().property('k', '♠').add_v().property('k', 'A')), (lambda g:g.V().has('k', P.within('轉注', '✦', '♠')).values('k'))], 
     'g_V_hasXnullX': [(lambda g:g.V().has(None))], 
-    'g_V_hasXnull_testnullkeyX': [(lambda g:g.V().has(None,'test-null-key'))], 
+    'g_V_hasXnull_testnullkeyX': [(lambda g:g.V().has(None, 'test-null-key'))], 
     'g_E_hasXnullX': [(lambda g:g.E().has(None))], 
-    'g_V_hasXlabel_personX': [(lambda g:g.V().has(T.label,'person'))], 
-    'g_V_hasXlabel_eqXpersonXX': [(lambda g:g.V().has(T.label,P.eq('person')))], 
-    'g_V_hasXlabel_isXpersonXX': [(lambda g:g.V().has(T.label,__.is_('person')))], 
-    'g_V_hasXname_nullX': [(lambda g:g.V().has('name',None))], 
-    'g_V_hasIdXemptyX_count': [(lambda g, xx1=None:g.V().hasId(xx1).count())], 
-    'g_V_hasIdXwithinXemptyXX_count': [(lambda g, xx1=None:g.V().hasId(xx1).count())], 
-    'g_V_hasIdXwithoutXemptyXX_count': [(lambda g, xx1=None:g.V().hasId(xx1).count())], 
-    'g_V_notXhasIdXwithinXemptyXXX_count': [(lambda g, xx1=None:g.V().not_(__.hasId(xx1)).count())], 
-    'g_V_hasIdXnullX': [(lambda g:g.V().hasId(None))], 
-    'g_V_hasIdXeqXnullXX': [(lambda g:g.V().hasId(P.eq(None)))], 
-    'g_V_hasIdX2_nullX': [(lambda g, vid2=None:g.V().hasId(vid2,None))], 
-    'g_V_hasIdX2AsString_nullX': [(lambda g, vid2=None:g.V().hasId(vid2,None))], 
-    'g_V_hasIdX1AsString_2AsString_nullX': [(lambda g, vid2=None,vid1=None:g.V().hasId(vid1,vid2,None))], 
-    'g_V_hasIdXnull_2X': [(lambda g, vid2=None:g.V().hasId(None,vid2))], 
-    'g_V_hasIdX1X_hasIdX2X': [(lambda g, vid2=None,vid1=None:g.V().hasId(vid1).hasId(vid2))], 
-    'g_V_in_hasIdXneqX1XX': [(lambda g, xx1=None:g.V().in_().hasId(xx1))], 
-    'g_VX1X_out_hasIdX2X': [(lambda g, vid2=None,vid1=None:g.V(vid1).out().hasId(vid2))], 
-    'g_VX1X_out_hasXid_2_3X': [(lambda g, vid3=None,vid2=None,vid1=None:g.V(vid1).out().hasId(vid2,vid3))], 
-    'g_VX1X_out_hasXid_2AsString_3AsStringX': [(lambda g, vid3=None,vid2=None,vid1=None:g.V(vid1).out().hasId(vid2,vid3))], 
-    'g_VX1AsStringX_out_hasXid_2AsStringX': [(lambda g, vid2=None,vid1=None:g.V(vid1).out().hasId(vid2))], 
-    'g_VX1X_out_hasXid_2_3X_inList': [(lambda g, xx1=None,vid1=None:g.V(vid1).out().hasId(xx1))], 
-    'g_V_hasXid_1_2X': [(lambda g, vid2=None,vid1=None:g.V().hasId(vid1,vid2))], 
-    'g_V_hasXid_1_2X_inList': [(lambda g, xx1=None:g.V().hasId(xx1))], 
-    'g_V_both_dedup_properties_hasKeyXageX_value': [(lambda g:g.V().both().properties().dedup().hasKey('age').value())], 
-    'g_V_both_properties_dedup_hasKeyXageX_hasValueXgtX30XX_value': [(lambda g:g.V().both().properties().dedup().hasKey('age').hasValue(P.gt(30)).value()), (lambda g:g.V().both().properties().dedup().hasKey('age').hasValue(P.gt(30)).value())], 
-    'g_V_bothE_properties_dedup_hasKeyXweightX_value': [(lambda g:g.V().bothE().properties().dedup().hasKey('weight').value())], 
-    'g_V_bothE_properties_dedup_hasKeyXweightX_hasValueXltX0d3XX_value': [(lambda g:g.V().bothE().properties().dedup().hasKey('weight').hasValue(P.lt(float(0.3))).value()), (lambda g:g.V().bothE().properties().dedup().hasKey('weight').hasValue(P.lt(float(0.3))).value())], 
-    'g_V_properties_hasKeyXnullX': [(lambda g:g.V().properties().hasKey(None))], 
-    'g_V_properties_hasKeyXnull_nullX': [(lambda g:g.V().properties().hasKey(None,None))], 
-    'g_V_properties_hasKeyXnull_ageX_value': [(lambda g:g.V().properties().hasKey(None,'age').value())], 
-    'g_E_properties_hasKeyXnullX': [(lambda g:g.E().properties().hasKey(None))], 
-    'g_E_properties_hasKeyXnull_nullX': [(lambda g:g.E().properties().hasKey(None,None))], 
-    'g_E_properties_hasKeyXnull_weightX_value': [(lambda g:g.E().properties().hasKey(None,'weight').value())], 
-    'g_EX7X_hasLabelXknowsX': [(lambda g, eid7=None:g.E(eid7).hasLabel('knows'))], 
-    'g_E_hasLabelXknowsX': [(lambda g:g.E().hasLabel('knows'))], 
-    'g_E_hasLabelXuses_traversesX': [(lambda g:g.E().hasLabel('uses','traverses'))], 
-    'g_V_hasLabelXperson_software_blahX': [(lambda g:g.V().hasLabel('person','software','blah'))], 
-    'g_V_hasLabelXpersonX_hasLabelXsoftwareX': [(lambda g:g.V().hasLabel('person').hasLabel('software'))], 
-    'g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name': [(lambda g:g.V().hasLabel('person').has('age',P.gt(10).or_(P.gte(11).and_(P.lt(20))).and_(P.lt(29).or_(P.eq(35)))).name)], 
-    'g_V_hasLabelXnullX': [(lambda g:g.V().hasLabel(None))], 
-    'g_V_hasXlabel_nullX': [(lambda g:g.V().has(T.label,None))], 
-    'g_V_hasLabelXnull_nullX': [(lambda g:g.V().hasLabel(None,None))], 
-    'g_V_hasLabelXnull_personX': [(lambda g:g.V().hasLabel(None,'person'))], 
-    'g_E_hasLabelXnullX': [(lambda g:g.E().hasLabel(None))], 
-    'g_E_hasXlabel_nullX': [(lambda g:g.E().has(T.label,None))], 
-    'g_V_properties_hasLabelXnullX': [(lambda g:g.V().properties().hasLabel(None))], 
-    'g_V_hasNotXageX_name': [(lambda g:g.V().hasNot('age').name)], 
-    'g_V_properties_hasValueXnullX': [(lambda g:g.V().properties().hasValue(None))], 
-    'g_V_properties_hasValueXnull_nullX': [(lambda g:g.V().properties().hasValue(None,None))], 
-    'g_V_properties_hasValueXnull_joshX_value': [(lambda g:g.V().properties().hasValue(None,'josh').value())], 
-    'g_V_valuesXageX_isX32X': [(lambda g:g.V().age.is_(32))], 
-    'g_V_valuesXageX_isXlte_30X': [(lambda g:g.V().age.is_(P.lte(30)))], 
-    'g_V_valuesXageX_isXgte_29X_isXlt_34X': [(lambda g:g.V().age.is_(P.gte(29)).is_(P.lt(34)))], 
-    'g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX': [(lambda g:g.V().where(__.in_('created').count().is_(1)).name)], 
-    'g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX': [(lambda g:g.V().where(__.in_('created').count().is_(P.gte(2))).name)], 
-    'g_V_orXhasXage_gt_27X__outE_count_gte_2X_name': [(lambda g:g.V().or_(__.has('age',P.gt(27)),__.outE().count().is_(P.gte(2))).name)], 
-    'g_V_orXoutEXknowsX__hasXlabel_softwareX_or_hasXage_gte_35XX_name': [(lambda g:g.V().or_(__.outE('knows'),__.has(T.label,'software').or_().has('age',P.gte(35))).name)], 
-    'g_V_asXaX_orXselectXaX_selectXaXX': [(lambda g:g.V().as_('a').or_(__.select('a'),__.select('a')))], 
-    'g_VX1X_out_limitX2X': [(lambda g, vid1=None:g.V(vid1).out()[0:2])], 
-    'g_V_localXoutE_limitX1X_inVX_limitX3X': [(lambda g:g.V().local(__.outE()[0:1]).in_v()[0:3])], 
-    'g_VX1X_outXknowsX_outEXcreatedX_rangeX0_1X_inV': [(lambda g, vid1=None:g.V(vid1).out('knows').outE('created')[0].in_v())], 
-    'g_VX1X_outXknowsX_outXcreatedX_rangeX0_1X': [(lambda g, vid1=None:g.V(vid1).out('knows').out('created')[0])], 
-    'g_VX1X_outXcreatedX_inXcreatedX_rangeX1_3X': [(lambda g, vid1=None:g.V(vid1).out('created').in_('created')[1:3])], 
-    'g_VX1X_outXcreatedX_inEXcreatedX_rangeX1_3X_outV': [(lambda g, vid1=None:g.V(vid1).out('created').inE('created')[1:3].out_v())], 
-    'g_V_repeatXbothX_timesX3X_rangeX5_11X': [(lambda g:g.V().repeat(__.both()).times(3)[5:11])], 
-    'g_V_asXaX_in_asXbX_in_asXcX_selectXa_b_cX_byXnameX_limitXlocal_2X': [(lambda g:g.V().as_('a').in_().as_('b').in_().as_('c').select('a','b','c').by('name').limit(Scope.local,2))], 
-    'g_V_asXaX_in_asXbX_in_asXcX_selectXa_b_cX_byXnameX_limitXlocal_1X': [(lambda g:g.V().as_('a').in_().as_('b').in_().as_('c').select('a','b','c').by('name').limit(Scope.local,1))], 
-    'g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_rangeXlocal_1_3X': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').select('a','b','c').by('name').range_(Scope.local,1,3))], 
-    'g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_rangeXlocal_1_2X': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').select('a','b','c').by('name').range_(Scope.local,1,2))], 
-    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_rangeXlocal_1_3X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed,'a').by(__.unfold().name.fold()).range_(Scope.local,1,3))], 
-    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_rangeXlocal_1_2X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed,'a').by(__.unfold().name.fold()).range_(Scope.local,1,2))], 
-    'g_V_hasLabelXpersonX_order_byXageX_skipX1X_valuesXnameX': [(lambda g:g.V().hasLabel('person').order().by('age').skip(1).name)], 
-    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_rangeXlocal_4_5X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed,'a').by(__.unfold().name.fold()).range_(Scope.local,4,5))], 
-    'g_V_outE_valuesXweightX_fold_orderXlocalX_skipXlocal_2X': [(lambda g:g.V().outE().weight.fold().order(Scope.local).skip(Scope.local,2))], 
-    'g_V_asXaX_in_asXaX_in_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_limitXlocal_1X': [(lambda g:g.V().as_('a').in_().as_('a').in_().as_('a').select(Pop.mixed,'a').by(__.unfold().name.fold()).limit(Scope.local,1))], 
-    'g_V_asXaX_in_asXaX_in_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_limitXlocal_2X': [(lambda g:g.V().as_('a').in_().as_('a').in_().as_('a').select(Pop.mixed,'a').by(__.unfold().name.fold()).limit(Scope.local,2))], 
-    'g_V_hasLabelXpersonX_order_byXageX_valuesXnameX_skipX1X': [(lambda g:g.V().hasLabel('person').order().by('age').name.skip(1))], 
-    'g_VX1X_valuesXageX_rangeXlocal_20_30X': [(lambda g, vid1=None:g.V(vid1).age.range_(Scope.local,20,30))], 
+    'g_V_hasXlabel_personX': [(lambda g:g.V().has(T.label, 'person'))], 
+    'g_V_hasXlabel_eqXpersonXX': [(lambda g:g.V().has(T.label, P.eq('person')))], 
+    'g_V_hasXlabel_isXpersonXX': [(lambda g:g.V().has(T.label, __.is_('person')))], 
+    'g_V_hasXname_nullX': [(lambda g:g.V().has('name', None))], 
+    'g_V_hasIdXemptyX_count': [(lambda g, xx1=None:g.V().has_id(xx1).count())], 
+    'g_V_hasIdXwithinXemptyXX_count': [(lambda g, xx1=None:g.V().has_id(xx1).count())], 
+    'g_V_hasIdXwithoutXemptyXX_count': [(lambda g, xx1=None:g.V().has_id(xx1).count())], 
+    'g_V_notXhasIdXwithinXemptyXXX_count': [(lambda g, xx1=None:g.V().not_(__.has_id(xx1)).count())], 
+    'g_V_hasIdXnullX': [(lambda g:g.V().has_id(None))], 
+    'g_V_hasIdXeqXnullXX': [(lambda g:g.V().has_id(P.eq(None)))], 
+    'g_V_hasIdX2_nullX': [(lambda g, vid2=None:g.V().has_id(vid2, None))], 
+    'g_V_hasIdX2AsString_nullX': [(lambda g, vid2=None:g.V().has_id(vid2, None))], 
+    'g_V_hasIdX1AsString_2AsString_nullX': [(lambda g, vid2=None,vid1=None:g.V().has_id(vid1, vid2, None))], 
+    'g_V_hasIdXnull_2X': [(lambda g, vid2=None:g.V().has_id(None, vid2))], 
+    'g_V_hasIdX1X_hasIdX2X': [(lambda g, vid2=None,vid1=None:g.V().has_id(vid1).has_id(vid2))], 
+    'g_V_in_hasIdXneqX1XX': [(lambda g, xx1=None:g.V().in_().has_id(xx1))], 
+    'g_VX1X_out_hasIdX2X': [(lambda g, vid2=None,vid1=None:g.V(vid1).out().has_id(vid2))], 
+    'g_VX1X_out_hasXid_2_3X': [(lambda g, vid3=None,vid2=None,vid1=None:g.V(vid1).out().has_id(vid2, vid3))], 
+    'g_VX1X_out_hasXid_2AsString_3AsStringX': [(lambda g, vid3=None,vid2=None,vid1=None:g.V(vid1).out().has_id(vid2, vid3))], 
+    'g_VX1AsStringX_out_hasXid_2AsStringX': [(lambda g, vid2=None,vid1=None:g.V(vid1).out().has_id(vid2))], 
+    'g_VX1X_out_hasXid_2_3X_inList': [(lambda g, xx1=None,vid1=None:g.V(vid1).out().has_id(xx1))], 
+    'g_V_hasXid_1_2X': [(lambda g, vid2=None,vid1=None:g.V().has_id(vid1, vid2))], 
+    'g_V_hasXid_1_2X_inList': [(lambda g, xx1=None:g.V().has_id(xx1))], 
+    'g_V_both_dedup_properties_hasKeyXageX_value': [(lambda g:g.V().both().properties().dedup().has_key('age').value())], 
+    'g_V_both_properties_dedup_hasKeyXageX_hasValueXgtX30XX_value': [(lambda g:g.V().both().properties().dedup().has_key('age').has_value(P.gt(30)).value()), (lambda g:g.V().both().properties().dedup().has_key('age').has_value(P.gt(30)).value())], 
+    'g_V_bothE_properties_dedup_hasKeyXweightX_value': [(lambda g:g.V().both_e().properties().dedup().has_key('weight').value())], 
+    'g_V_bothE_properties_dedup_hasKeyXweightX_hasValueXltX0d3XX_value': [(lambda g:g.V().both_e().properties().dedup().has_key('weight').has_value(P.lt(0.3)).value()), (lambda g:g.V().both_e().properties().dedup().has_key('weight').has_value(P.lt(0.3)).value())], 
+    'g_V_properties_hasKeyXnullX': [(lambda g:g.V().properties().has_key(None))], 
+    'g_V_properties_hasKeyXnull_nullX': [(lambda g:g.V().properties().has_key(None, None))], 
+    'g_V_properties_hasKeyXnull_ageX_value': [(lambda g:g.V().properties().has_key(None, 'age').value())], 
+    'g_E_properties_hasKeyXnullX': [(lambda g:g.E().properties().has_key(None))], 
+    'g_E_properties_hasKeyXnull_nullX': [(lambda g:g.E().properties().has_key(None, None))], 
+    'g_E_properties_hasKeyXnull_weightX_value': [(lambda g:g.E().properties().has_key(None, 'weight').value())], 
+    'g_EX7X_hasLabelXknowsX': [(lambda g, eid7=None:g.E(eid7).has_label('knows'))], 
+    'g_E_hasLabelXknowsX': [(lambda g:g.E().has_label('knows'))], 
+    'g_E_hasLabelXuses_traversesX': [(lambda g:g.E().has_label('uses', 'traverses'))], 
+    'g_V_hasLabelXperson_software_blahX': [(lambda g:g.V().has_label('person', 'software', 'blah'))], 
+    'g_V_hasLabelXpersonX_hasLabelXsoftwareX': [(lambda g:g.V().has_label('person').has_label('software'))], 
+    'g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name': [(lambda g:g.V().has_label('person').has('age', P.not_(P.lte(10).and_(P.not_(P.between(11, 20)))).and_(P.lt(29).or_(P.eq(35)))).values('name'))], 
+    'g_V_hasLabelXnullX': [(lambda g:g.V().has_label(None))], 
+    'g_V_hasXlabel_nullX': [(lambda g:g.V().has(T.label, None))], 
+    'g_V_hasLabelXnull_nullX': [(lambda g:g.V().has_label(None, None))], 
+    'g_V_hasLabelXnull_personX': [(lambda g:g.V().has_label(None, 'person'))], 
+    'g_E_hasLabelXnullX': [(lambda g:g.E().has_label(None))], 
+    'g_E_hasXlabel_nullX': [(lambda g:g.E().has(T.label, None))], 
+    'g_V_properties_hasLabelXnullX': [(lambda g:g.V().properties().has_label(None))], 
+    'g_V_hasNotXageX_name': [(lambda g:g.V().has_not('age').values('name'))], 
+    'g_V_properties_hasValueXnullX': [(lambda g:g.V().properties().has_value(None))], 
+    'g_V_properties_hasValueXnull_nullX': [(lambda g:g.V().properties().has_value(None, None))], 
+    'g_V_properties_hasValueXnull_joshX_value': [(lambda g:g.V().properties().has_value(None, 'josh').value())], 
+    'g_V_valuesXageX_isX32X': [(lambda g:g.V().values('age').is_(32))], 
+    'g_V_valuesXageX_isXlte_30X': [(lambda g:g.V().values('age').is_(P.lte(30)))], 
+    'g_V_valuesXageX_isXgte_29X_isXlt_34X': [(lambda g:g.V().values('age').is_(P.gte(29)).is_(P.lt(34)))], 
+    'g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX': [(lambda g:g.V().where(__.in_('created').count().is_(1)).values('name'))], 
+    'g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX': [(lambda g:g.V().where(__.in_('created').count().is_(P.gte(2))).values('name'))], 
+    'g_V_orXhasXage_gt_27X__outE_count_gte_2X_name': [(lambda g:g.V().or_(__.has('age', P.gt(27)), __.out_e().count().is_(P.gte(2))).values('name'))], 
+    'g_V_orXoutEXknowsX__hasXlabel_softwareX_or_hasXage_gte_35XX_name': [(lambda g:g.V().or_(__.out_e('knows'), __.has(T.label, 'software').or_().has('age', P.gte(35))).values('name'))], 
+    'g_V_asXaX_orXselectXaX_selectXaXX': [(lambda g:g.V().as_('a').or_(__.select('a'), __.select('a')))], 
+    'g_VX1X_out_limitX2X': [(lambda g, vid1=None:g.V(vid1).out().limit(2))], 
+    'g_V_localXoutE_limitX1X_inVX_limitX3X': [(lambda g:g.V().local(__.out_e().limit(1)).in_v().limit(3))], 
+    'g_VX1X_outXknowsX_outEXcreatedX_rangeX0_1X_inV': [(lambda g, vid1=None:g.V(vid1).out('knows').out_e('created').range_(0, 1).in_v())], 
+    'g_VX1X_outXknowsX_outXcreatedX_rangeX0_1X': [(lambda g, vid1=None:g.V(vid1).out('knows').out('created').range_(0, 1))], 
+    'g_VX1X_outXcreatedX_inXcreatedX_rangeX1_3X': [(lambda g, vid1=None:g.V(vid1).out('created').in_('created').range_(1, 3))], 
+    'g_VX1X_outXcreatedX_inEXcreatedX_rangeX1_3X_outV': [(lambda g, vid1=None:g.V(vid1).out('created').in_e('created').range_(1, 3).out_v())], 
+    'g_V_repeatXbothX_timesX3X_rangeX5_11X': [(lambda g:g.V().repeat(__.both()).times(3).range_(5, 11))], 
+    'g_V_asXaX_in_asXbX_in_asXcX_selectXa_b_cX_byXnameX_limitXlocal_2X': [(lambda g:g.V().as_('a').in_().as_('b').in_().as_('c').select('a', 'b', 'c').by('name').limit(Scope.local, 2))], 
+    'g_V_asXaX_in_asXbX_in_asXcX_selectXa_b_cX_byXnameX_limitXlocal_1X': [(lambda g:g.V().as_('a').in_().as_('b').in_().as_('c').select('a', 'b', 'c').by('name').limit(Scope.local, 1))], 
+    'g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_rangeXlocal_1_3X': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').select('a', 'b', 'c').by('name').range_(Scope.local, 1, 3))], 
+    'g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_rangeXlocal_1_2X': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').select('a', 'b', 'c').by('name').range_(Scope.local, 1, 2))], 
+    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_rangeXlocal_1_3X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed, 'a').by(__.unfold().values('name').fold()).range_(Scope.local, 1, 3))], 
+    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_rangeXlocal_1_2X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed, 'a').by(__.unfold().values('name').fold()).range_(Scope.local, 1, 2))], 
+    'g_V_hasLabelXpersonX_order_byXageX_skipX1X_valuesXnameX': [(lambda g:g.V().has_label('person').order().by('age').skip(1).values('name'))], 
+    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_rangeXlocal_4_5X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed, 'a').by(__.unfold().values('name').fold()).range_(Scope.local, 4, 5))], 
+    'g_V_outE_valuesXweightX_fold_orderXlocalX_skipXlocal_2X': [(lambda g:g.V().out_e().values('weight').fold().order(Scope.local).skip(Scope.local, 2))], 
+    'g_V_asXaX_in_asXaX_in_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_limitXlocal_1X': [(lambda g:g.V().as_('a').in_().as_('a').in_().as_('a').select(Pop.mixed, 'a').by(__.unfold().values('name').fold()).limit(Scope.local, 1))], 
+    'g_V_asXaX_in_asXaX_in_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_limitXlocal_2X': [(lambda g:g.V().as_('a').in_().as_('a').in_().as_('a').select(Pop.mixed, 'a').by(__.unfold().values('name').fold()).limit(Scope.local, 2))], 
+    'g_V_hasLabelXpersonX_order_byXageX_valuesXnameX_skipX1X': [(lambda g:g.V().has_label('person').order().by('age').values('name').skip(1))], 
+    'g_VX1X_valuesXageX_rangeXlocal_20_30X': [(lambda g, vid1=None:g.V(vid1).values('age').range_(Scope.local, 20, 30))], 
     'g_E_sampleX1X': [(lambda g:g.E().sample(1))], 
     'g_E_sampleX2X_byXweightX': [(lambda g:g.E().sample(2).by('weight'))], 
-    'g_V_localXoutE_sampleX1X_byXweightXX': [(lambda g:g.V().local(__.outE().sample(1).by('weight')))], 
-    'g_withStrategiesXSeedStrategyX_V_group_byXlabelX_byXbothE_weight_order_sampleX2X_foldXunfold': [(lambda g:g.withStrategies(*[TraversalStrategy('SeedStrategy',{'seed':999999,'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy')]).V().group().by(T.label).by(__.bothE().weight.order().sample(2).fold()).unfold())], 
-    'g_withStrategiesXSeedStrategyX_V_group_byXlabelX_byXbothE_weight_order_fold_sampleXlocal_5XXunfold': [(lambda g:g.withStrategies(*[TraversalStrategy('SeedStrategy',{'seed':999999,'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy')]).V().group().by(T.label).by(__.bothE().weight.order().fold().sample(Scope.local,5)).unfold())], 
-    'g_withStrategiesXSeedStrategyX_V_order_byXlabel_descX_sampleX1X_byXageX': [(lambda g:g.withStrategies(*[TraversalStrategy('SeedStrategy',{'seed':999999,'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy')]).V().order().by(T.label,Order.desc).sample(1).by('age'))], 
-    'g_VX1X_valuesXageX_sampleXlocal_5X': [(lambda g, vid1=None:g.V(vid1).age.sample(Scope.local,5))], 
-    'g_VX1X_outXcreatedX_inXcreatedX_simplePath': [(lambda g, vid1=None:g.V(vid1).out('created').in_('created').simplePath())], 
-    'g_V_repeatXboth_simplePathX_timesX3X_path': [(lambda g:g.V().repeat(__.both().simplePath()).times(3).path())], 
-    'g_V_asXaX_out_asXbX_out_asXcX_simplePath_byXlabelX_fromXbX_toXcX_path_byXnameX': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').simplePath().by(T.label).from_('b').to('c').path().by('name'))], 
-    'g_injectX0X_V_both_coalesceXhasXname_markoX_both_constantX0XX_simplePath_path': [(lambda g:g.inject(0).V().both().coalesce(__.has('name','marko').both(),__.constant(0)).simplePath().path())], 
-    'g_V_both_asXaX_both_asXbX_simplePath_path_byXageX__fromXaX_toXbX': [(lambda g:g.V().both().as_('a').both().as_('b').simplePath().path().by('age').from_('a').to('b'))], 
-    'g_V_valuesXnameX_order_tailXglobal_2X': [(lambda g:g.V().name.order().tail(Scope.global_,2))], 
-    'g_V_valuesXnameX_order_tailX2X': [(lambda g:g.V().name.order().tail(2))], 
-    'g_V_valuesXnameX_order_tail': [(lambda g:g.V().name.order().tail())], 
-    'g_V_valuesXnameX_order_tailX7X': [(lambda g:g.V().name.order().tail(7))], 
+    'g_V_localXoutE_sampleX1X_byXweightXX': [(lambda g:g.V().local(__.out_e().sample(1).by('weight')))], 
+    'g_withStrategiesXSeedStrategyX_V_group_byXlabelX_byXbothE_weight_order_sampleX2X_foldXunfold': [(lambda g:g.with_strategies(SeedStrategy(seed=999999)).V().group().by(T.label).by(__.both_e().values('weight').order().sample(2).fold()).unfold())], 
+    'g_withStrategiesXSeedStrategyX_V_group_byXlabelX_byXbothE_weight_order_fold_sampleXlocal_5XXunfold': [(lambda g:g.with_strategies(SeedStrategy(seed=999999)).V().group().by(T.label).by(__.both_e().values('weight').order().fold().sample(Scope.local, 5)).unfold())], 
+    'g_withStrategiesXSeedStrategyX_V_order_byXlabel_descX_sampleX1X_byXageX': [(lambda g:g.with_strategies(SeedStrategy(seed=999999)).V().order().by(T.label, Order.desc).sample(1).by('age'))], 
+    'g_VX1X_valuesXageX_sampleXlocal_5X': [(lambda g, vid1=None:g.V(vid1).values('age').sample(Scope.local, 5))], 
+    'g_VX1X_outXcreatedX_inXcreatedX_simplePath': [(lambda g, vid1=None:g.V(vid1).out('created').in_('created').simple_path())], 
+    'g_V_repeatXboth_simplePathX_timesX3X_path': [(lambda g:g.V().repeat(__.both().simple_path()).times(3).path())], 
+    'g_V_asXaX_out_asXbX_out_asXcX_simplePath_byXlabelX_fromXbX_toXcX_path_byXnameX': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').simple_path().by(T.label).from_('b').to('c').path().by('name'))], 
+    'g_injectX0X_V_both_coalesceXhasXname_markoX_both_constantX0XX_simplePath_path': [(lambda g:g.inject(0).V().both().coalesce(__.has('name', 'marko').both(), __.constant(0)).simple_path().path())], 
+    'g_V_both_asXaX_both_asXbX_simplePath_path_byXageX__fromXaX_toXbX': [(lambda g:g.V().both().as_('a').both().as_('b').simple_path().path().by('age').from_('a').to('b'))], 
+    'g_V_valuesXnameX_order_tailXglobal_2X': [(lambda g:g.V().values('name').order().tail(Scope.global_, 2))], 
+    'g_V_valuesXnameX_order_tailX2X': [(lambda g:g.V().values('name').order().tail(2))], 
+    'g_V_valuesXnameX_order_tail': [(lambda g:g.V().values('name').order().tail())], 
+    'g_V_valuesXnameX_order_tailX7X': [(lambda g:g.V().values('name').order().tail(7))], 
     'g_V_repeatXbothX_timesX3X_tailX7X': [(lambda g:g.V().repeat(__.both()).times(3).tail(7))], 
     'g_V_repeatXin_outX_timesX3X_tailX7X_count': [(lambda g:g.V().repeat(__.in_().out()).times(3).tail(7).count())], 
-    'g_V_asXaX_out_asXaX_out_asXaX_selectXaX_byXunfold_valuesXnameX_foldX_tailXlocal_1X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select('a').by(__.unfold().name.fold()).tail(Scope.local,1))], 
-    'g_V_asXaX_out_asXaX_out_asXaX_selectXaX_byXunfold_valuesXnameX_foldX_tailXlocalX': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select('a').by(__.unfold().name.fold()).tail(Scope.local))], 
-    'g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_tailXlocal_2X': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').select('a','b','c').by('name').tail(Scope.local,2))], 
-    'g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_tailXlocal_1X': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').select('a','b','c').by('name').tail(Scope.local,1))], 
-    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_tailXlocal_1X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed,'a').by(__.unfold().name.fold()).tail(Scope.local,1))], 
-    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_tailXlocalX': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed,'a').by(__.unfold().name.fold()).tail(Scope.local))], 
-    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXlimitXlocal_0XX_tailXlocal_1X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed,'a').by(__.limit(Scope.local,0)).tail(Scope.local,1))], 
-    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_tailXlocal_2X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed,'a').by(__.unfold().name.fold()).tail(Scope.local,2))], 
-    'g_VX1X_valuesXageX_tailXlocal_5X': [(lambda g, vid1=None:g.V(vid1).age.tail(Scope.local,50))], 
-    'g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXa_eqXbXX': [(lambda g:g.V().has('age').as_('a').out().in_().has('age').as_('b').select('a','b').where('a',P.eq('b')))], 
-    'g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXa_neqXbXX': [(lambda g:g.V().has('age').as_('a').out().in_().has('age').as_('b').select('a','b').where('a',P.neq('b')))], 
-    'g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXb_hasXname_markoXX': [(lambda g:g.V().has('age').as_('a').out().in_().has('age').as_('b').select('a','b').where(__.as_('b').has('name','marko')))], 
-    'g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXa_outXknowsX_bX': [(lambda g:g.V().has('age').as_('a').out().in_().has('age').as_('b').select('a','b').where(__.as_('a').out('knows').as_('b')))], 
-    'g_V_asXaX_outXcreatedX_whereXasXaX_name_isXjoshXX_inXcreatedX_name': [(lambda g:g.V().as_('a').out('created').where(__.as_('a').name.is_('josh')).in_('created').name)], 
-    'g_withSideEffectXa_josh_peterX_VX1X_outXcreatedX_inXcreatedX_name_whereXwithinXaXX': [(lambda g, xx1=None,vid1=None:g.withSideEffect('a',xx1).V(vid1).out('created').in_('created').name.where(P.within(['a'])))], 
-    'g_VX1X_asXaX_outXcreatedX_inXcreatedX_asXbX_whereXa_neqXbXX_name': [(lambda g, vid1=None:g.V(vid1).as_('a').out('created').in_('created').as_('b').where('a',P.neq('b')).name)], 
-    'g_VX1X_asXaX_outXcreatedX_inXcreatedX_asXbX_whereXasXbX_outXcreatedX_hasXname_rippleXX_valuesXage_nameX': [(lambda g, vid1=None:g.V(vid1).as_('a').out('created').in_('created').as_('b').where(__.as_('b').out('created').has('name','ripple')).values('age','name'))], 
-    'g_VX1X_asXaX_outXcreatedX_inXcreatedX_whereXeqXaXX_name': [(lambda g, vid1=None:g.V(vid1).as_('a').out('created').in_('created').where(P.eq('a')).name)], 
-    'g_VX1X_asXaX_outXcreatedX_inXcreatedX_whereXneqXaXX_name': [(lambda g, vid1=None:g.V(vid1).as_('a').out('created').in_('created').where(P.neq('a')).name)], 
-    'g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX': [(lambda g, vid1=None:g.V(vid1).out().aggregate('x').out().where(P.without(['x'])))], 
-    'g_withSideEffectXa_g_VX2XX_VX1X_out_whereXneqXaXX': [(lambda g, vid1=None,v2=None:g.withSideEffect('a',v2).V(vid1).out().where(P.neq('a')))], 
-    'g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path': [(lambda g, vid1=None:g.V(vid1).repeat(__.bothE('created').where(P.without(['e'])).aggregate('e').otherV()).emit().path())], 
-    'g_V_whereXnotXoutXcreatedXXX_name': [(lambda g:g.V().where(__.not_(__.out('created'))).name)], 
-    'g_V_asXaX_out_asXbX_whereXandXasXaX_outXknowsX_asXbX__orXasXbX_outXcreatedX_hasXname_rippleX__asXbX_inXknowsX_count_isXnotXeqX0XXXXX_selectXa_bX': [(lambda g:g.V().as_('a').out().as_('b').where(__.and_(__.as_('a').out('knows').as_('b'),__.or_(__.as_('b').out('created').has('name','ripple'),__.as_('b').in_('knows').count().is_(P.neq(0))))).select('a','b'))], 
-    'g_V_whereXoutXcreatedX_and_outXknowsX_or_inXknowsXX_valuesXnameX': [(lambda g:g.V().where(__.out('created').and_().out('knows').or_().in_('knows')).name)], 
-    'g_V_asXaX_outXcreatedX_asXbX_whereXandXasXbX_in__notXasXaX_outXcreatedX_hasXname_rippleXXX_selectXa_bX': [(lambda g:g.V().as_('a').out('created').as_('b').where(__.and_(__.as_('b').in_(),__.not_(__.as_('a').out('created').has('name','ripple')))).select('a','b'))], 
-    'g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_bothXknowsX_bothXknowsX_asXdX_whereXc__notXeqXaX_orXeqXdXXXX_selectXa_b_c_dX': [(lambda g:g.V().as_('a').out('created').as_('b').in_('created').as_('c').both('knows').both('knows').as_('d').where('c',P.neq('a').and_(P.neq('d'))).select('a','b','c','d'))], 
-    'g_V_asXaX_out_asXbX_whereXin_count_isXeqX3XX_or_whereXoutXcreatedX_and_hasXlabel_personXXX_selectXa_bX': [(lambda g:g.V().as_('a').out().as_('b').where(__.as_('b').in_().count().is_(P.eq(3)).or_().where(__.as_('b').out('created').and_().as_('b').has(T.label,'person'))).select('a','b'))], 
-    'g_V_asXaX_outXcreatedX_inXcreatedX_asXbX_whereXa_gtXbXX_byXageX_selectXa_bX_byXnameX': [(lambda g:g.V().as_('a').out('created').in_('created').as_('b').where('a',P.gt('b')).by('age').select('a','b').by('name'))], 
-    'g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_whereXa_gtXbX_orXeqXbXXX_byXageX_byXweightX_byXweightX_selectXa_cX_byXnameX': [(lambda g:g.V().as_('a').outE('created').as_('b').in_v().as_('c').where('a',P.gt('b').or_(P.eq('b'))).by('age').by('weight').by('weight').select('a','c').by('name'))], 
-    'g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_inXcreatedX_asXdX_whereXa_ltXbX_orXgtXcXX_andXneqXdXXX_byXageX_byXweightX_byXinXcreatedX_valuesXageX_minX_selectXa_c_dX': [(lambda g:g.V().as_('a').outE('created').as_('b').in_v().as_('c').in_('created').as_('d').where('a',P.lt('b').or_(P.gt('c')).and_(P.neq('d'))).by('age').by('weight').by(__.in_('created').age.min_()).select('a','c','d').by('name'))], 
-    'g_VX1X_asXaX_out_hasXageX_whereXgtXaXX_byXageX_name': [(lambda g, vid1=None:g.V(vid1).as_('a').out().has('age').where(P.gt('a')).by('age').name)], 
-    'g_VX3X_asXaX_in_out_asXbX_whereXa_eqXbXX_byXageX_name': [(lambda g, vid3=None:g.V(vid3).as_('a').in_().out().as_('b').where('a',P.eq('b')).by('age').name)], 
-    'g_withStrategiesXProductiveByStrategyX_VX3X_asXaX_in_out_asXbX_whereXa_eqXbXX_byXageX_name': [(lambda g, vid3=None:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V(vid3).as_('a').in_().out().as_('b').where('a',P.eq('b')).by('age').name)], 
-    'g_V_asXnX_whereXorXhasLabelXsoftwareX_hasLabelXpersonXXX_selectXnX_byXnameX': [(lambda g:g.V().as_('n').where(__.or_(__.hasLabel('software'),__.hasLabel('person'))).select('n').by('name'))], 
-    'g_V_asXnX_whereXorXselectXnX_hasLabelXsoftwareX_selectXnX_hasLabelXpersonXXX_selectXnX_byXnameX': [(lambda g:g.V().as_('n').where(__.or_(__.select('n').hasLabel('software'),__.select('n').hasLabel('person'))).select('n').by('name'))], 
-    'g_V_coworker': [(lambda g, xx1=None:g.V().hasLabel('person').filter_(__.outE('created')).aggregate('p').as_('p1').name.as_('p1n').select('p').unfold().where(P.neq('p1')).as_('p2').name.as_('p2n').select('p2').out('created').choose(__.in_('created').where(P.eq('p1')),__.name,__.constant(xx1)).group().by(__.select('p1n')).by(__.group().by(__.select('p2n')).by(__.unfold().fold().project('numCoCreated','coCreated').by(__.count(Scope.local)).by())).unfold())], 
-    'g_V_coworker_with_midV': [(lambda g:g.V().hasLabel('person').filter_(__.outE('created')).as_('p1').V().hasLabel('person').where(P.neq('p1')).filter_(__.outE('created')).as_('p2').map(__.out('created').where(__.in_('created').as_('p1')).name.fold()).group().by(__.select('p1').by('name')).by(__.group().by(__.select('p2').by('name')).by(__.project('numCoCreated','coCreated').by(__.count(Scope.local)).by())).unfold())], 
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').addV('person').property('_partition','b').property('name','bob')), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy','writePartition':'a'}, 'org [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').addV('person').property('_partition','b').property('name','bob')), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a','b')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy','writePartition':'a'} [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').addV('person').property('_partition','b').property('name','bob')), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('c')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy','writePartition':'a'}, 'org [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_bothE_weight': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties' [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_bXX_V_bothE_weight': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties' [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_bothE_dedup_weight': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaPro [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_bothE_weight': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties' [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_both_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':Fa [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_bXX_V_both_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':Fa [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_both_dedup_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProper [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_both_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':Fa [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_out_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':Fal [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_bXX_V_in_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':Fals [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_out_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':F [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_out_name': [(lambda g:g.addV('person').property('_partition','a').property('name','alice').as_('a').addV('person').property('_partition','b').property('name','bob').as_('b').addE('knows').from_('a').to('b').property('_partition','a').property('weight',1).addE('knows').from_('b').to('a').property('_partition','b').property('weight',2)), (lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':Fal [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_addVXpersonX_propertyXname_aliceX_addXselfX': [(lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy','writePartition':'a'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy')]).addV('person').property [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectXzeroX_addVXpersonX_propertyXname_aliceX_addXselfX': [(lambda g:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy','writePartition':'a'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy')]).inject(0). [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeV': [(lambda g, xx1=None:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy','writePartition':'a'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy')]).merge_v(xx1)), (lambda g, xx1=None:g.V().has('pers [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectX0X_mergeV': [(lambda g, xx1=None:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy','writePartition':'a'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy')]).inject(0).merge_v(xx1)), (lambda g, xx1= [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeE': [(lambda g, xx1=None:g.addV('person').property('_partition','a').property('name','alice').addV('person').property('_partition','a').property('name','bob')), (lambda g, xx1=None:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy','writeP [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectX0XmergeE': [(lambda g, xx1=None:g.addV('person').property('_partition','a').property('name','alice').addV('person').property('_partition','a').property('name','bob')), (lambda g, xx1=None:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeVXlabel_person_name_aliceX_optionXonMatch_name_bobX': [(lambda g, xx1=None,xx2=None:g.addV('person').property('_partition','a').property('name','alice').addV('person').property('_partition','b').property('name','alice')), (lambda g, xx1=None,xx2=None:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a')),'strategy':'org.apache.tinkerpop.gr [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeV_optionXonCreateX': [(lambda g, xx1=None,xx2=None:g.addV('person').property('_partition','b').property('name','alice')), (lambda g, xx1=None,xx2=None:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy','writePartition':'a'}, 'org.apache.ti [...]
-    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectX0X__mergeV_optionXonCreateX': [(lambda g, xx1=None,xx2=None:g.addV('person').property('_partition','b').property('name','alice')), (lambda g, xx1=None,xx2=None:g.withStrategies(*[TraversalStrategy('PartitionStrategy',{'includeMetaProperties':False,'partitionKey':'_partition','readPartitions':set(('a')),'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy','writePartition':'a'}, 'or [...]
-    'g_V_shortestpath': [(lambda g:g.V().as_('v').both().as_('v').project('src','tgt','p').by(__.select(Pop.first,'v')).by(__.select(Pop.last,'v')).by(__.select(Pop.all_,'v')).as_('triple').group('x').by(__.select('src','tgt')).by(__.select('p').fold()).select('tgt').barrier().repeat(__.both().as_('v').project('src','tgt','p').by(__.select(Pop.first,'v')).by(__.select(Pop.last,'v')).by(__.select(Pop.all_,'v')).as_('t').filter_(__.select(Pop.all_,'p').count(Scope.local).as_('l').select(Po [...]
-    'g_withStrategiesXReadOnlyStrategyX_V': [(lambda g:g.withStrategies(*[TraversalStrategy('ReadOnlyStrategy', None, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy')]).V())], 
-    'g_withStrategiesXReadOnlyStrategyX_V_outXknowsX_name': [(lambda g:g.withStrategies(*[TraversalStrategy('ReadOnlyStrategy', None, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy')]).V().out('knows').name)], 
-    'g_withStrategiesXReadOnlyStrategyX_addVXpersonX': [(lambda g:g.withStrategies(*[TraversalStrategy('ReadOnlyStrategy', None, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy')]).addV('person'))], 
-    'g_withStrategiesXReadOnlyStrategyX_addVXpersonX_fromXVX1XX_toXVX2XX': [(lambda g, vid2=None,vid1=None:g.withStrategies(*[TraversalStrategy('ReadOnlyStrategy', None, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy')]).addE('link').from_(__.V(vid1)).to(__.V(vid2)))], 
-    'g_withStrategiesXReadOnlyStrategyX_V_addVXpersonX_fromXVX1XX': [(lambda g, vid1=None:g.withStrategies(*[TraversalStrategy('ReadOnlyStrategy', None, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy')]).V().addE('link').from_(__.V(vid1)))], 
-    'g_withStrategiesXReadOnlyStrategyX_V_propertyXname_joshX': [(lambda g:g.withStrategies(*[TraversalStrategy('ReadOnlyStrategy', None, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy')]).V().property('name','josh'))], 
-    'g_withStrategiesXReadOnlyStrategyX_E_propertyXweight_0X': [(lambda g:g.withStrategies(*[TraversalStrategy('ReadOnlyStrategy', None, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy')]).E().property('weight',0))], 
-    'g_V_classic_recommendation': [(lambda g:g.V().has('name','DARK STAR').as_('a').out('followedBy').aggregate('stash').in_('followedBy').where(P.neq('a').and_(P.without(['stash']))).groupCount().unfold().project('x','y','z').by(__.select(Column.keys).name).by(__.select(Column.keys).performances).by(__.select(Column.values)).order().by(__.select('z'),Order.desc).by(__.select('y'),Order.asc)[0:5].aggregate(Scope.local,'m').select('x'))], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_V': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_E': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_outE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).outE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_inE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).inE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_out': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).out())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_in': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).in_())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_both': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).both())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_bothE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).bothE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_localXbothE_limitX1XX': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).local(__.bothE()[0:1]))], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_EX11X_bothV': [(lambda g, eid11=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E(eid11).bothV())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_EX12X_bothV': [(lambda g, eid12=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E(eid12).bothV())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_V': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_E': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX1X_outE': [(lambda g, vid1=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid1).outE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX1X_out': [(lambda g, vid1=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid1).out())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX1X_outXcreatedX': [(lambda g, vid1=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid1).out('knows'))], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_outXcreatedX': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).out('created'))], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_outE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).outE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_out': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).out())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_bothE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).bothE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_both': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).both())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_outV_outE': [(lambda g, eid8=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.or_(__.has('weight',float(1.0)).hasLabel('knows'),__.has('weight',float(0.4)).hasLabel('created').out_v().has('name','marko'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E(eid8).out_v().outE())], 
-    'g_withStrategiesXSubgraphStrategyXvertices_inXknowsX_hasXname_markoXXX_V_name': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.in_('knows').has('name','marko')}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().name)], 
-    'g_withStrategiesXSubgraphStrategyXvertices_in_hasXname_markoXXX_V_name': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.in_().has('name','marko')}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().name)], 
-    'g_withStrategiesXSubgraphStrategyXvertices_inXknowsX_whereXoutXcreatedX_hasXname_lopXXXX_V_name': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.in_('knows').where(__.out('created').has('name','lop'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().name)], 
-    'g_withStrategiesXSubgraphStrategyXvertices_in_hasXname_markoX_outXcreatedX_hasXname_lopXXXX_V_name': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.in_().where(__.has('name','marko').out('created').has('name','lop'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().name)], 
-    'g_withStrategiesXSubgraphStrategyXvertices_orXboth_hasXname_markoX_hasXname_markoXXXX_V_name': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.or_(__.both().has('name','marko'),__.has('name','marko'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().where(__.bothE().count().is_(P.neq(0))).name)], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_V': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_E': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_outE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).outE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_inE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).inE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_out': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).out())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_in': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).in_())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_both': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).both())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_bothE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).bothE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_localXbothE_limitX1XX': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).local(__.bothE()[0:1]))], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_EX11X_bothV': [(lambda g, eid11=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E(eid11).bothV())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_EX12X_bothV': [(lambda g, eid12=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E(eid12).bothV())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_EX9X_bothV': [(lambda g, eid9=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E(eid9).bothV())], 
-    'g_withStrategiesXSubgraphStrategyXvertices_hasXname_withinXripple_josh_markoXXX_V_asXaX_out_in_asXbX_dedupXa_bX_name': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.within(['ripple','josh','marko']))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().as_('a').out().in_().as_('b').dedup('a','b').name)], 
-    'g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_propertiesXlocationX_value': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertexProperties':__.has('startTime',P.gt(2005))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().properties('location').value())], 
-    'g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_valuesXlocationX': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertexProperties':__.has('startTime',P.gt(2005))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().location)], 
-    'g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_asXaX_propertiesXlocationX_asXbX_selectXaX_outE_properties_selectXbX_value_dedup': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertexProperties':__.has('startTime',P.gt(2005))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().as_('a').properties('location').as_('b').select('a').outE().properties().select('b' [...]
-    'g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_asXaX_valuesXlocationX_asXbX_selectXaX_outE_properties_selectXbX_dedup': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertexProperties':__.has('startTime',P.gt(2005))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().as_('a').location.as_('b').select('a').outE().properties().select('b').dedup())], 
-    'g_withStrategiesXSubgraphStrategyXvertices_hasXname_neqXstephenXX_vertexProperties_hasXstartTime_gtX2005XXXX_V_propertiesXlocationX_value': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.neq('stephen')),'vertexProperties':__.has('startTime',P.gt(2005))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().properties('location').value())], 
-    'g_withStrategiesXSubgraphStrategyXvertices_hasXname_neqXstephenXX_vertexProperties_hasXstartTime_gtX2005XXXX_V_valuesXlocationX': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'vertices':__.has('name',P.neq('stephen')),'vertexProperties':__.has('startTime',P.gt(2005))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().location)], 
-    'g_withStrategiesXSubgraphStrategyXedges_hasLabelXusesX_hasXskill_5XXX_V_outE_valueMap_selectXvaluesX_unfold': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':True,'edges':__.hasLabel('uses').has('skill',5)}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V().outE().valueMap().select(Column.values).unfold())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_V': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_E': [(lambda g:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_outE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).outE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_inE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).inE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_out': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).out())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_in': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).in_())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_both': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).both())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_bothE': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).bothE())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_localXbothE_limitX1XX': [(lambda g, vid4=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).V(vid4).local(__.bothE()[0:1]))], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_EX11X_bothV': [(lambda g, eid11=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E(eid11).bothV())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_EX12X_bothV': [(lambda g, eid12=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E(eid12).bothV())], 
-    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_EX9X_bothV': [(lambda g, eid9=None:g.withStrategies(*[TraversalStrategy('SubgraphStrategy',{'checkAdjacentVertices':False,'vertices':__.has('name',P.within(['josh','lop','ripple'])),'edges':__.or_(__.has('weight',float(0.4)).hasLabel('created'),__.has('weight',float(1.0)).hasLabel('created'))}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy')]).E(eid9).bothV())], 
-    'g_VX1X_asXaX_outXcreatedX_addEXcreatedByX_toXaX': [(lambda g, vid1=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').pro [...]
-    'g_VX1X_asXaX_outXcreatedX_addEXcreatedByX_toXaX_propertyXweight_2X': [(lambda g, vid1=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property( [...]
-    'g_V_outE_propertyXweight_nullX': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').property('age',35).as_('peter') [...]
-    'g_V_aggregateXxX_asXaX_selectXxX_unfold_addEXexistsWithX_toXaX_propertyXtime_nowX': [(lambda g, vid1=None,vid2=None,vid3=None,vid4=None,vid5=None,vid6=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple [...]
-    'g_V_asXaX_outXcreatedX_inXcreatedX_whereXneqXaXX_asXbX_addEXcodeveloperX_fromXaX_toXbX_propertyXyear_2009X': [(lambda g, vid1=None,vid2=None,vid4=None,vid6=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','r [...]
-    'g_V_asXaX_inXcreatedX_addEXcreatedByX_fromXaX_propertyXyear_2009X_propertyXacl_publicX': [(lambda g, vid1=None,vid2=None,vid3=None,vid4=None,vid5=None,vid6=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','r [...]
-    'g_withSideEffectXb_bX_VXaX_addEXknowsX_toXbX_propertyXweight_0_5X': [(lambda g, v6=None,v1=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').prop [...]
-    'g_addV_asXfirstX_repeatXaddEXnextX_toXaddVX_inVX_timesX5X_addEXnextX_toXselectXfirstXX': [(lambda g:g.addV().as_('first').repeat(__.addE('next').to(__.addV()).in_v()).times(5).addE('next').to(__.select('first'))), (lambda g:g.V()), (lambda g:g.E()), (lambda g:g.E().hasLabel('next')), (lambda g:g.V()[0:1].bothE()), (lambda g:g.V()[0:1].inE()), (lambda g:g.V()[0:1].outE())], 
-    'g_V_hasXname_markoX_asXaX_outEXcreatedX_asXbX_inV_addEXselectXbX_labelX_toXaX': [(lambda g, v1=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person'). [...]
-    'g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_descX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX': [(lambda g, v2=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple [...]
-    'g_addEXknowsX_fromXaX_toXbX_propertyXweight_0_1X': [(lambda g, v6=None,xx1=None,v1=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('na [...]
-    'g_VXaX_addEXknowsX_toXbX_propertyXweight_0_1X': [(lambda g, v6=None,xx1=None,v1=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name' [...]
-    'g_addEXknowsXpropertyXweight_nullXfromXV_hasXname_markoXX_toXV_hasXname_vadasXX': [(lambda g:g.addV('person').property('name','marko').property('age',29).addV('person').property('name','vadas').property('age',27)), (lambda g:g.addE('knows').property('weight',None).from_(__.V().has('name','marko')).to(__.V().has('name','vadas'))), (lambda g:g.E().has('knows','weight',None))], 
-    'g_VX1X_addVXanimalX_propertyXage_selectXaX_byXageXX_propertyXname_puppyX': [(lambda g, vid1=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').pro [...]
-    'g_V_addVXanimalX_propertyXage_0X': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').property('age',35).as_('peter [...]
-    'g_addVXpersonX_propertyXname_stephenX': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').property('age',35).as_(' [...]
-    'g_V_hasLabelXpersonX_propertyXname_nullX': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').property('age',35).as [...]
-    'g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenmX': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('n [...]
-    'get_g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenm_since_2010X': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('perso [...]
-    'g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property [...]
-    'g_addVXanimalX_propertyXname_mateoX_propertyXname_gateoX_propertyXname_cateoX_propertyXage_5X': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('pe [...]
-    'g_withSideEffectXa_markoX_addV_propertyXname_selectXaXX_name': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').p [...]
-    'g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenm_since_2010X': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person'). [...]
-    'g_V_addVXanimalX_propertyXname_valuesXnameXX_propertyXname_an_animalX_propertyXvaluesXnameX_labelX': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').add [...]
-    'g_withSideEffectXa_testX_V_hasLabelXsoftwareX_propertyXtemp_selectXaXX_valueMapXname_tempX': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('perso [...]
-    'g_withSideEffectXa_nameX_addV_propertyXselectXaX_markoX_name': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').p [...]
-    'g_V_asXaX_hasXname_markoX_outXcreatedX_asXbX_addVXselectXaX_labelX_propertyXtest_selectXbX_labelX_valueMap_withXtokensX': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','jav [...]
-    'g_addVXV_hasXname_markoX_propertiesXnameX_keyX_label': [(lambda g:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').property( [...]
-    'g_addV_propertyXlabel_personX': [(lambda g:g.addV().property(T.label,'person')), (lambda g:g.V().hasLabel('person'))], 
-    'g_addV_propertyXmapX': [(lambda g:g.addV().property('name','foo').property('age',42)), (lambda g:g.V().has('name','foo'))], 
-    'g_addV_propertyXsingle_mapX': [(lambda g:g.addV().property(Cardinality.single,'name','foo').property(Cardinality.single,'age',42)), (lambda g:g.V().has('name','foo'))], 
-    'g_V_hasXname_fooX_propertyXname_setXbarX_age_43X': [(lambda g:g.addV().property(Cardinality.single,'name','foo').property('age',42)), (lambda g:g.V().has('name','foo').property(Cardinality.set_,'name','bar').property('age',43)), (lambda g:g.V().has('name','foo')), (lambda g:g.V().has('name','bar')), (lambda g:g.V().has('age',43)), (lambda g:g.V().has('age',42))], 
-    'g_V_hasXname_fooX_propertyXset_name_bar_age_singleX43XX': [(lambda g:g.addV().property(Cardinality.single,'name','foo').property('age',42)), (lambda g:g.V().has('name','foo').property(Cardinality.set_,'name','bar').property(Cardinality.single,'age',43)), (lambda g:g.V().has('name','foo')), (lambda g:g.V().has('name','bar')), (lambda g:g.V().has('age',43)), (lambda g:g.V().has('age',42))], 
-    'g_addV_propertyXnullX': [(lambda g:g.addV('person')), (lambda g:g.V().hasLabel('person').values())], 
-    'g_addV_propertyXemptyX': [(lambda g:g.addV('person')), (lambda g:g.V().hasLabel('person').values())], 
-    'g_addV_propertyXset_nullX': [(lambda g:g.addV('foo')), (lambda g:g.V().hasLabel('foo').values())], 
-    'g_addV_propertyXset_emptyX': [(lambda g:g.addV('foo')), (lambda g:g.V().hasLabel('person').values())], 
-    'g_addVXpersonX_propertyXname_joshX_propertyXage_nullX': [(lambda g:g.addV('person').property('name','josh').property('age',None)), (lambda g:g.V().has('person','age',None))], 
-    'g_addVXpersonX_propertyXname_markoX_propertyXfriendWeight_null_acl_nullX': [(lambda g:g.addV('person').property('name','marko').property('friendWeight',None,'acl',None)), (lambda g:g.V().has('person','name','marko').has('friendWeight',None)), (lambda g:g.V().has('person','name','marko').properties('friendWeight').has('acl',None)), (lambda g:g.V().has('person','name','marko').properties('friendWeight').count())], 
-    'g_V_hasXperson_name_aliceX_propertyXsingle_age_unionXage_constantX1XX_sumX': [(lambda g:g.addV('person').property('name','alice').property(Cardinality.single,'age',50)), (lambda g:g.V().has('person','name','alice').property('age',__.union(__.age,__.constant(1)).sum_())), (lambda g:g.V().has('person','age',50)), (lambda g:g.V().has('person','age',51))], 
+    'g_V_asXaX_out_asXaX_out_asXaX_selectXaX_byXunfold_valuesXnameX_foldX_tailXlocal_1X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select('a').by(__.unfold().values('name').fold()).tail(Scope.local, 1))], 
+    'g_V_asXaX_out_asXaX_out_asXaX_selectXaX_byXunfold_valuesXnameX_foldX_tailXlocalX': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select('a').by(__.unfold().values('name').fold()).tail(Scope.local))], 
+    'g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_tailXlocal_2X': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').select('a', 'b', 'c').by('name').tail(Scope.local, 2))], 
+    'g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_tailXlocal_1X': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').select('a', 'b', 'c').by('name').tail(Scope.local, 1))], 
+    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_tailXlocal_1X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed, 'a').by(__.unfold().values('name').fold()).tail(Scope.local, 1))], 
+    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_tailXlocalX': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed, 'a').by(__.unfold().values('name').fold()).tail(Scope.local))], 
+    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXlimitXlocal_0XX_tailXlocal_1X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed, 'a').by(__.limit(Scope.local, 0)).tail(Scope.local, 1))], 
+    'g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_tailXlocal_2X': [(lambda g:g.V().as_('a').out().as_('a').out().as_('a').select(Pop.mixed, 'a').by(__.unfold().values('name').fold()).tail(Scope.local, 2))], 
+    'g_VX1X_valuesXageX_tailXlocal_5X': [(lambda g, vid1=None:g.V(vid1).values('age').tail(Scope.local, 50))], 
+    'g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXa_eqXbXX': [(lambda g:g.V().has('age').as_('a').out().in_().has('age').as_('b').select('a', 'b').where('a', P.eq('b')))], 
+    'g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXa_neqXbXX': [(lambda g:g.V().has('age').as_('a').out().in_().has('age').as_('b').select('a', 'b').where('a', P.neq('b')))], 
+    'g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXb_hasXname_markoXX': [(lambda g:g.V().has('age').as_('a').out().in_().has('age').as_('b').select('a', 'b').where(__.as_('b').has('name', 'marko')))], 
+    'g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXa_outXknowsX_bX': [(lambda g:g.V().has('age').as_('a').out().in_().has('age').as_('b').select('a', 'b').where(__.as_('a').out('knows').as_('b')))], 
+    'g_V_asXaX_outXcreatedX_whereXasXaX_name_isXjoshXX_inXcreatedX_name': [(lambda g:g.V().as_('a').out('created').where(__.as_('a').values('name').is_('josh')).in_('created').values('name'))], 
+    'g_withSideEffectXa_josh_peterX_VX1X_outXcreatedX_inXcreatedX_name_whereXwithinXaXX': [(lambda g, xx1=None,vid1=None:g.with_side_effect('a', xx1).V(vid1).out('created').in_('created').values('name').where(P.within('a')))], 
+    'g_VX1X_asXaX_outXcreatedX_inXcreatedX_asXbX_whereXa_neqXbXX_name': [(lambda g, vid1=None:g.V(vid1).as_('a').out('created').in_('created').as_('b').where('a', P.neq('b')).values('name'))], 
+    'g_VX1X_asXaX_outXcreatedX_inXcreatedX_asXbX_whereXasXbX_outXcreatedX_hasXname_rippleXX_valuesXage_nameX': [(lambda g, vid1=None:g.V(vid1).as_('a').out('created').in_('created').as_('b').where(__.as_('b').out('created').has('name', 'ripple')).values('age', 'name'))], 
+    'g_VX1X_asXaX_outXcreatedX_inXcreatedX_whereXeqXaXX_name': [(lambda g, vid1=None:g.V(vid1).as_('a').out('created').in_('created').where(P.eq('a')).values('name'))], 
+    'g_VX1X_asXaX_outXcreatedX_inXcreatedX_whereXneqXaXX_name': [(lambda g, vid1=None:g.V(vid1).as_('a').out('created').in_('created').where(P.neq('a')).values('name'))], 
+    'g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX': [(lambda g, vid1=None:g.V(vid1).out().aggregate('x').out().where(P.not_(P.within('x'))))], 
+    'g_withSideEffectXa_g_VX2XX_VX1X_out_whereXneqXaXX': [(lambda g, vid1=None,v2=None:g.with_side_effect('a', v2).V(vid1).out().where(P.neq('a')))], 
+    'g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path': [(lambda g, vid1=None:g.V(vid1).repeat(__.both_e('created').where(P.without('e')).aggregate('e').other_v()).emit().path())], 
+    'g_V_whereXnotXoutXcreatedXXX_name': [(lambda g:g.V().where(__.not_(__.out('created'))).values('name'))], 
+    'g_V_asXaX_out_asXbX_whereXandXasXaX_outXknowsX_asXbX__orXasXbX_outXcreatedX_hasXname_rippleX__asXbX_inXknowsX_count_isXnotXeqX0XXXXX_selectXa_bX': [(lambda g:g.V().as_('a').out().as_('b').where(__.and_(__.as_('a').out('knows').as_('b'), __.or_(__.as_('b').out('created').has('name', 'ripple'), __.as_('b').in_('knows').count().is_(P.not_(P.eq(0)))))).select('a', 'b'))], 
+    'g_V_whereXoutXcreatedX_and_outXknowsX_or_inXknowsXX_valuesXnameX': [(lambda g:g.V().where(__.out('created').and_().out('knows').or_().in_('knows')).values('name'))], 
+    'g_V_asXaX_outXcreatedX_asXbX_whereXandXasXbX_in__notXasXaX_outXcreatedX_hasXname_rippleXXX_selectXa_bX': [(lambda g:g.V().as_('a').out('created').as_('b').where(__.and_(__.as_('b').in_(), __.not_(__.as_('a').out('created').has('name', 'ripple')))).select('a', 'b'))], 
+    'g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_bothXknowsX_bothXknowsX_asXdX_whereXc__notXeqXaX_orXeqXdXXXX_selectXa_b_c_dX': [(lambda g:g.V().as_('a').out('created').as_('b').in_('created').as_('c').both('knows').both('knows').as_('d').where('c', P.not_(P.eq('a').or_(P.eq('d')))).select('a', 'b', 'c', 'd'))], 
+    'g_V_asXaX_out_asXbX_whereXin_count_isXeqX3XX_or_whereXoutXcreatedX_and_hasXlabel_personXXX_selectXa_bX': [(lambda g:g.V().as_('a').out().as_('b').where(__.as_('b').in_().count().is_(P.eq(3)).or_().where(__.as_('b').out('created').and_().as_('b').has(T.label, 'person'))).select('a', 'b'))], 
+    'g_V_asXaX_outXcreatedX_inXcreatedX_asXbX_whereXa_gtXbXX_byXageX_selectXa_bX_byXnameX': [(lambda g:g.V().as_('a').out('created').in_('created').as_('b').where('a', P.gt('b')).by('age').select('a', 'b').by('name'))], 
+    'g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_whereXa_gtXbX_orXeqXbXXX_byXageX_byXweightX_byXweightX_selectXa_cX_byXnameX': [(lambda g:g.V().as_('a').out_e('created').as_('b').in_v().as_('c').where('a', P.gt('b').or_(P.eq('b'))).by('age').by('weight').by('weight').select('a', 'c').by('name'))], 
+    'g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_inXcreatedX_asXdX_whereXa_ltXbX_orXgtXcXX_andXneqXdXXX_byXageX_byXweightX_byXinXcreatedX_valuesXageX_minX_selectXa_c_dX': [(lambda g:g.V().as_('a').out_e('created').as_('b').in_v().as_('c').in_('created').as_('d').where('a', P.lt('b').or_(P.gt('c')).and_(P.neq('d'))).by('age').by('weight').by(__.in_('created').values('age').min_()).select('a', 'c', 'd').by('name'))], 
+    'g_VX1X_asXaX_out_hasXageX_whereXgtXaXX_byXageX_name': [(lambda g, vid1=None:g.V(vid1).as_('a').out().has('age').where(P.gt('a')).by('age').values('name'))], 
+    'g_VX3X_asXaX_in_out_asXbX_whereXa_eqXbXX_byXageX_name': [(lambda g, vid3=None:g.V(vid3).as_('a').in_().out().as_('b').where('a', P.eq('b')).by('age').values('name'))], 
+    'g_withStrategiesXProductiveByStrategyX_VX3X_asXaX_in_out_asXbX_whereXa_eqXbXX_byXageX_name': [(lambda g, vid3=None:g.with_strategies(ProductiveByStrategy()).V(vid3).as_('a').in_().out().as_('b').where('a', P.eq('b')).by('age').values('name'))], 
+    'g_V_asXnX_whereXorXhasLabelXsoftwareX_hasLabelXpersonXXX_selectXnX_byXnameX': [(lambda g:g.V().as_('n').where(__.or_(__.has_label('software'), __.has_label('person'))).select('n').by('name'))], 
+    'g_V_asXnX_whereXorXselectXnX_hasLabelXsoftwareX_selectXnX_hasLabelXpersonXXX_selectXnX_byXnameX': [(lambda g:g.V().as_('n').where(__.or_(__.select('n').has_label('software'), __.select('n').has_label('person'))).select('n').by('name'))], 
+    'g_V_coworker': [(lambda g, xx1=None:g.V().has_label('person').filter_(__.out_e('created')).aggregate('p').as_('p1').values('name').as_('p1n').select('p').unfold().where(P.neq('p1')).as_('p2').values('name').as_('p2n').select('p2').out('created').choose(__.in_('created').where(P.eq('p1')), __.values('name'), __.constant(xx1)).group().by(__.select('p1n')).by(__.group().by(__.select('p2n')).by(__.unfold().fold().project('numCoCreated', 'coCreated').by(__.count(Scope.local)).by())).unfo [...]
+    'g_V_coworker_with_midV': [(lambda g:g.V().has_label('person').filter_(__.out_e('created')).as_('p1').V().has_label('person').where(P.neq('p1')).filter_(__.out_e('created')).as_('p2').map(__.out('created').where(__.in_('created').as_('p1')).values('name').fold()).group().by(__.select('p1').by('name')).by(__.group().by(__.select('p2').by('name')).by(__.project('numCoCreated', 'coCreated').by(__.count(Scope.local)).by())).unfold())], 
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').add_v('person').property('_partition', 'b').property('name', 'bob')), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a'])).V().values('name'))], 
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').add_v('person').property('_partition', 'b').property('name', 'bob')), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a', 'b'])).V().values('name'))], 
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').add_v('person').property('_partition', 'b').property('name', 'bob')), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['c'])).V().values('name'))], 
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_bothE_weight': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_bXX_V_bothE_weight': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_bothE_dedup_weight': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_bothE_weight': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_both_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_pa [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_bXX_V_both_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_pa [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_both_dedup_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition',  [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_both_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_pa [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_out_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_par [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_bXX_V_in_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_part [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_out_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_p [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_out_name': [(lambda g:g.add_v('person').property('_partition', 'a').property('name', 'alice').as_('a').add_v('person').property('_partition', 'b').property('name', 'bob').as_('b').add_e('knows').from_('a').to('b').property('_partition', 'a').property('weight', 1).add_e('knows').from_('b').to('a').property('_partition', 'b').property('weight', 2)), (lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_par [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_addVXpersonX_propertyXname_aliceX_addXselfX': [(lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a'])).add_v('person').property('name', 'alice').add_e('self')), (lambda g:g.V().has('person', 'name', 'alice').has('_partition', 'a')), (lambda g:g.V()), (lambda g:g.E().has('_partition', 'a')), (lambda g:g.E())], 
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectXzeroX_addVXpersonX_propertyXname_aliceX_addXselfX': [(lambda g:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a'])).inject(0).add_v('person').property('name', 'alice').add_e('self')), (lambda g:g.V().has('person', 'name', 'alice').has('_partition', 'a')), (lambda g:g.V()), (lambda g:g.E().has('_partition', 'a')), (lambda g:g.E())], 
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeV': [(lambda g, xx1=None:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a'])).merge_v(xx1)), (lambda g, xx1=None:g.V().has('person', 'name', 'alice').has('_partition', 'a')), (lambda g, xx1=None:g.V())], 
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectX0X_mergeV': [(lambda g, xx1=None:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a'])).inject(0).merge_v(xx1)), (lambda g, xx1=None:g.V().has('person', 'name', 'alice').has('_partition', 'a')), (lambda g, xx1=None:g.V())], 
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeE': [(lambda g, xx1=None:g.add_v('person').property('_partition', 'a').property('name', 'alice').add_v('person').property('_partition', 'a').property('name', 'bob')), (lambda g, xx1=None:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a'])).merge_e(xx1)), (lambda g, xx1=None:g.E().has('knows', '_partition', 'a')), (lambda g, xx1=None:g.E())], 
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectX0XmergeE': [(lambda g, xx1=None:g.add_v('person').property('_partition', 'a').property('name', 'alice').add_v('person').property('_partition', 'a').property('name', 'bob')), (lambda g, xx1=None:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a'])).inject(0).merge_e(xx1)), (lambda g, xx1=None:g.E().has('knows', '_partition', 'a')), (lambda g, xx1=None:g.E())], 
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeVXlabel_person_name_aliceX_optionXonMatch_name_bobX': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('_partition', 'a').property('name', 'alice').add_v('person').property('_partition', 'b').property('name', 'alice')), (lambda g, xx1=None,xx2=None:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a'])).merge_v(xx1).option(Merge.on_match, xx2)), (lambda g, xx1=None,x [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeV_optionXonCreateX': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('_partition', 'b').property('name', 'alice')), (lambda g, xx1=None,xx2=None:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a'])).merge_v(xx1).option(Merge.on_create, xx2)), (lambda g, xx1=None,xx2=None:g.V().has('name', 'alice').has('age', 35).has('_partition', 'a')), (lambda g, xx1=None,xx2=Non [...]
+    'g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectX0X__mergeV_optionXonCreateX': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('_partition', 'b').property('name', 'alice')), (lambda g, xx1=None,xx2=None:g.with_strategies(PartitionStrategy(partition_key='_partition', write_partition='a', read_partitions=['a'])).inject(0).merge_v(xx1).option(Merge.on_create, xx2)), (lambda g, xx1=None,xx2=None:g.V().has('name', 'alice').has('age', 35).has('_partition', 'a')), (lambd [...]
+    'g_V_shortestpath': [(lambda g:g.V().as_('v').both().as_('v').project('src', 'tgt', 'p').by(__.select(Pop.first, 'v')).by(__.select(Pop.last, 'v')).by(__.select(Pop.all_, 'v')).as_('triple').group('x').by(__.select('src', 'tgt')).by(__.select('p').fold()).select('tgt').barrier().repeat(__.both().as_('v').project('src', 'tgt', 'p').by(__.select(Pop.first, 'v')).by(__.select(Pop.last, 'v')).by(__.select(Pop.all_, 'v')).as_('t').filter_(__.select(Pop.all_, 'p').count(Scope.local).as_('l [...]
+    'g_withStrategiesXReadOnlyStrategyX_V': [(lambda g:g.with_strategies(ReadOnlyStrategy()).V())], 
+    'g_withStrategiesXReadOnlyStrategyX_V_outXknowsX_name': [(lambda g:g.with_strategies(ReadOnlyStrategy()).V().out('knows').values('name'))], 
+    'g_withStrategiesXReadOnlyStrategyX_addVXpersonX': [(lambda g:g.with_strategies(ReadOnlyStrategy()).add_v('person'))], 
+    'g_withStrategiesXReadOnlyStrategyX_addVXpersonX_fromXVX1XX_toXVX2XX': [(lambda g, vid2=None,vid1=None:g.with_strategies(ReadOnlyStrategy()).add_e('link').from_(__.V(vid1)).to(__.V(vid2)))], 
+    'g_withStrategiesXReadOnlyStrategyX_V_addVXpersonX_fromXVX1XX': [(lambda g, vid1=None:g.with_strategies(ReadOnlyStrategy()).V().add_e('link').from_(__.V(vid1)))], 
+    'g_withStrategiesXReadOnlyStrategyX_V_propertyXname_joshX': [(lambda g:g.with_strategies(ReadOnlyStrategy()).V().property('name', 'josh'))], 
+    'g_withStrategiesXReadOnlyStrategyX_E_propertyXweight_0X': [(lambda g:g.with_strategies(ReadOnlyStrategy()).E().property('weight', 0))], 
+    'g_V_classic_recommendation': [(lambda g:g.V().has('name', 'DARK STAR').as_('a').out('followedBy').aggregate('stash').in_('followedBy').where(P.neq('a').and_(P.not_(P.within('stash')))).group_count().unfold().project('x', 'y', 'z').by(__.select(Column.keys).values('name')).by(__.select(Column.keys).values('performances')).by(__.select(Column.values)).order().by(__.select('z'), Order.desc).by(__.select('y'), Order.asc).limit(5).aggregate(Scope.local, 'm').select('x'))], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_V': [(lambda g:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).V())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_E': [(lambda g:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).E())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_outE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).V(vid4).out_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_inE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).V(vid4).in_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_out': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).V(vid4).out())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_in': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).V(vid4).in_())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_both': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).V(vid4).both())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_bothE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).V(vid4).both_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_localXbothE_limitX1XX': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).V(vid4).local(__.both_e().limit(1)))], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_EX11X_bothV': [(lambda g, eid11=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).E(eid11).both_v())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphAXX_EX12X_bothV': [(lambda g, eid12=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')))).E(eid12).both_v())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_V': [(lambda g:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).V())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_E': [(lambda g:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).E())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX1X_outE': [(lambda g, vid1=None:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).V(vid1).out_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX1X_out': [(lambda g, vid1=None:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).V(vid1).out())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX1X_outXcreatedX': [(lambda g, vid1=None:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).V(vid1).out('knows'))], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_outXcreatedX': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).V(vid4).out('created'))], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_outE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).V(vid4).out_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_out': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).V(vid4).out())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_bothE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).V(vid4).both_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_both': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).V(vid4).both())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_outV_outE': [(lambda g, eid8=None:g.with_strategies(SubgraphStrategy(edges=__.or_(__.has('weight', 1.0).has_label('knows'), __.has('weight', 0.4).has_label('created').out_v().has('name', 'marko'), __.has('weight', 1.0).has_label('created')))).E(eid8).out_v().out_e())], 
+    'g_withStrategiesXSubgraphStrategyXvertices_inXknowsX_hasXname_markoXXX_V_name': [(lambda g:g.with_strategies(SubgraphStrategy(vertices=__.in_('knows').has('name', 'marko'))).V().values('name'))], 
+    'g_withStrategiesXSubgraphStrategyXvertices_in_hasXname_markoXXX_V_name': [(lambda g:g.with_strategies(SubgraphStrategy(vertices=__.in_().has('name', 'marko'))).V().values('name'))], 
+    'g_withStrategiesXSubgraphStrategyXvertices_inXknowsX_whereXoutXcreatedX_hasXname_lopXXXX_V_name': [(lambda g:g.with_strategies(SubgraphStrategy(vertices=__.in_('knows').where(__.out('created').has('name', 'lop')))).V().values('name'))], 
+    'g_withStrategiesXSubgraphStrategyXvertices_in_hasXname_markoX_outXcreatedX_hasXname_lopXXXX_V_name': [(lambda g:g.with_strategies(SubgraphStrategy(vertices=__.in_().where(__.has('name', 'marko').out('created').has('name', 'lop')))).V().values('name'))], 
+    'g_withStrategiesXSubgraphStrategyXvertices_orXboth_hasXname_markoX_hasXname_markoXXXX_V_name': [(lambda g:g.with_strategies(SubgraphStrategy(vertices=__.or_(__.both().has('name', 'marko'), __.has('name', 'marko')))).V().where(__.both_e().count().is_(P.neq(0))).values('name'))], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_V': [(lambda g:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_E': [(lambda g:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).E())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_outE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).out_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_inE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).in_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_out': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).out())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_in': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).in_())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_both': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).both())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_bothE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).both_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_localXbothE_limitX1XX': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).local(__.both_e().limit(1)))], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_EX11X_bothV': [(lambda g, eid11=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).E(eid11).both_v())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_EX12X_bothV': [(lambda g, eid12=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).E(eid12).both_v())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphCXX_EX9X_bothV': [(lambda g, eid9=None:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).E(eid9).both_v())], 
+    'g_withStrategiesXSubgraphStrategyXvertices_hasXname_withinXripple_josh_markoXXX_V_asXaX_out_in_asXbX_dedupXa_bX_name': [(lambda g:g.with_strategies(SubgraphStrategy(vertices=__.has('name', P.within('ripple', 'josh', 'marko')))).V().as_('a').out().in_().as_('b').dedup('a', 'b').values('name'))], 
+    'g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_propertiesXlocationX_value': [(lambda g:g.with_strategies(SubgraphStrategy(vertex_properties=__.has('startTime', P.gt(2005)))).V().properties('location').value())], 
+    'g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_valuesXlocationX': [(lambda g:g.with_strategies(SubgraphStrategy(vertex_properties=__.has('startTime', P.gt(2005)))).V().values('location'))], 
+    'g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_asXaX_propertiesXlocationX_asXbX_selectXaX_outE_properties_selectXbX_value_dedup': [(lambda g:g.with_strategies(SubgraphStrategy(vertex_properties=__.has('startTime', P.gt(2005)))).V().as_('a').properties('location').as_('b').select('a').out_e().properties().select('b').value().dedup())], 
+    'g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_asXaX_valuesXlocationX_asXbX_selectXaX_outE_properties_selectXbX_dedup': [(lambda g:g.with_strategies(SubgraphStrategy(vertex_properties=__.has('startTime', P.gt(2005)))).V().as_('a').values('location').as_('b').select('a').out_e().properties().select('b').dedup())], 
+    'g_withStrategiesXSubgraphStrategyXvertices_hasXname_neqXstephenXX_vertexProperties_hasXstartTime_gtX2005XXXX_V_propertiesXlocationX_value': [(lambda g:g.with_strategies(SubgraphStrategy(vertex_properties=__.has('startTime', P.gt(2005)), vertices=__.has('name', P.neq('stephen')))).V().properties('location').value())], 
+    'g_withStrategiesXSubgraphStrategyXvertices_hasXname_neqXstephenXX_vertexProperties_hasXstartTime_gtX2005XXXX_V_valuesXlocationX': [(lambda g:g.with_strategies(SubgraphStrategy(vertex_properties=__.has('startTime', P.gt(2005)), vertices=__.has('name', P.neq('stephen')))).V().values('location'))], 
+    'g_withStrategiesXSubgraphStrategyXedges_hasLabelXusesX_hasXskill_5XXX_V_outE_valueMap_selectXvaluesX_unfold': [(lambda g:g.with_strategies(SubgraphStrategy(edges=__.has_label('uses').has('skill', 5))).V().out_e().value_map().select(Column.values).unfold())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_V': [(lambda g:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_E': [(lambda g:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).E())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_outE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).out_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_inE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).in_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_out': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).out())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_in': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).in_())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_both': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).both())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_bothE': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).both_e())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_localXbothE_limitX1XX': [(lambda g, vid4=None:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).V(vid4).local(__.both_e().limit(1)))], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_EX11X_bothV': [(lambda g, eid11=None:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).E(eid11).both_v())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_EX12X_bothV': [(lambda g, eid12=None:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).E(eid12).both_v())], 
+    'g_withStrategiesXSubgraphStrategyXsubgraphDXX_EX9X_bothV': [(lambda g, eid9=None:g.with_strategies(SubgraphStrategy(check_adjacent_vertices=False, vertices=__.has('name', P.within('josh', 'lop', 'ripple')), edges=__.or_(__.has('weight', 0.4).has_label('created'), __.has('weight', 1.0).has_label('created')))).E(eid9).both_v())], 
+    'g_VX1X_asXaX_outXcreatedX_addEXcreatedByX_toXaX': [(lambda g, vid1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property('na [...]
+    'g_VX1X_asXaX_outXcreatedX_addEXcreatedByX_toXaX_propertyXweight_2X': [(lambda g, vid1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('pe [...]
+    'g_V_outE_propertyXweight_nullX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property('name', 'peter').property('age' [...]
+    'g_V_aggregateXxX_asXaX_selectXxX_unfold_addEXexistsWithX_toXaX_propertyXtime_nowX': [(lambda g, vid1=None,vid2=None,vid3=None,vid4=None,vid5=None,vid6=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property(' [...]
+    'g_V_asXaX_outXcreatedX_inXcreatedX_whereXneqXaXX_asXbX_addEXcodeveloperX_fromXaX_toXbX_propertyXyear_2009X': [(lambda g, vid1=None,vid2=None,vid4=None,vid6=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').prope [...]
+    'g_V_asXaX_inXcreatedX_addEXcreatedByX_fromXaX_propertyXyear_2009X_propertyXacl_publicX': [(lambda g, vid1=None,vid2=None,vid3=None,vid4=None,vid5=None,vid6=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').prope [...]
+    'g_withSideEffectXb_bX_VXaX_addEXknowsX_toXbX_propertyXweight_0_5X': [(lambda g, v6=None,v1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_ [...]
+    'g_addV_asXfirstX_repeatXaddEXnextX_toXaddVX_inVX_timesX5X_addEXnextX_toXselectXfirstXX': [(lambda g:g.add_v().as_('first').repeat(__.add_e('next').to(__.add_v()).in_v()).times(5).add_e('next').to(__.select('first'))), (lambda g:g.V()), (lambda g:g.E()), (lambda g:g.E().has_label('next')), (lambda g:g.V().limit(1).both_e()), (lambda g:g.V().limit(1).in_e()), (lambda g:g.V().limit(1).out_e())], 
+    'g_V_hasXname_markoX_asXaX_outEXcreatedX_asXbX_inV_addEXselectXbX_labelX_toXaX': [(lambda g, v1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple'). [...]
+    'g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_descX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX': [(lambda g, v2=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property(' [...]
+    'g_addEXknowsX_fromXaX_toXbX_propertyXweight_0_1X': [(lambda g, v6=None,xx1=None,v1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('perso [...]
+    'g_VXaX_addEXknowsX_toXbX_propertyXweight_0_1X': [(lambda g, v6=None,xx1=None,v1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person') [...]
+    'g_addEXknowsXpropertyXweight_nullXfromXV_hasXname_markoXX_toXV_hasXname_vadasXX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).add_v('person').property('name', 'vadas').property('age', 27)), (lambda g:g.add_e('knows').property('weight', None).from_(__.V().has('name', 'marko')).to(__.V().has('name', 'vadas'))), (lambda g:g.E().has('knows', 'weight', None))], 
+    'g_VX1X_addVXanimalX_propertyXage_selectXaX_byXageXX_propertyXname_puppyX': [(lambda g, vid1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add [...]
+    'g_V_addVXanimalX_propertyXage_0X': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property('name', 'peter').property('ag [...]
+    'g_addVXpersonX_propertyXname_stephenX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property('name', 'peter').propert [...]
+    'g_V_hasLabelXpersonX_propertyXname_nullX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property('name', 'peter').prop [...]
+    'g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenmX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('pers [...]
+    'get_g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenm_since_2010X': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('rippl [...]
+    'g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('p [...]
+    'g_addVXanimalX_propertyXname_mateoX_propertyXname_gateoX_propertyXname_cateoX_propertyXage_5X': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ri [...]
+    'g_withSideEffectXa_markoX_addV_propertyXname_selectXaXX_name': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property(' [...]
+    'g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenm_since_2010X': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple'). [...]
+    'g_V_addVXanimalX_propertyXname_valuesXnameXX_propertyXname_an_animalX_propertyXvaluesXnameX_labelX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as [...]
+    'g_withSideEffectXa_testX_V_hasLabelXsoftwareX_propertyXtemp_selectXaXX_valueMapXname_tempX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('rippl [...]
+    'g_withSideEffectXa_nameX_addV_propertyXselectXaX_markoX_name': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property(' [...]
+    'g_V_asXaX_hasXname_markoX_outXcreatedX_asXbX_addVXselectXaX_labelX_propertyXtest_selectXbX_labelX_valueMap_withXtokensX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').proper [...]
+    'g_addVXV_hasXname_markoX_propertiesXnameX_keyX_label': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property('name', ' [...]
+    'g_addV_propertyXlabel_personX': [(lambda g:g.add_v().property(T.label, 'person')), (lambda g:g.V().has_label('person'))], 
+    'g_addV_propertyXmapX': [(lambda g:g.add_v().property({ 'name': 'foo', 'age': 42 })), (lambda g:g.V().has('name', 'foo'))], 
+    'g_addV_propertyXsingle_mapX': [(lambda g:g.add_v().property(Cardinality.single, { 'name': 'foo', 'age': 42 })), (lambda g:g.V().has('name', 'foo'))], 
+    'g_V_hasXname_fooX_propertyXname_setXbarX_age_43X': [(lambda g:g.add_v().property(Cardinality.single, 'name', 'foo').property('age', 42)), (lambda g:g.V().has('name', 'foo').property({ 'name': CardinalityValue.set_('bar'), 'age': 43 })), (lambda g:g.V().has('name', 'foo')), (lambda g:g.V().has('name', 'bar')), (lambda g:g.V().has('age', 43)), (lambda g:g.V().has('age', 42))], 
+    'g_V_hasXname_fooX_propertyXset_name_bar_age_singleX43XX': [(lambda g:g.add_v().property(Cardinality.single, 'name', 'foo').property('age', 42)), (lambda g:g.V().has('name', 'foo').property(Cardinality.set_, { 'name': 'bar', 'age': CardinalityValue.single(43) })), (lambda g:g.V().has('name', 'foo')), (lambda g:g.V().has('name', 'bar')), (lambda g:g.V().has('age', 43)), (lambda g:g.V().has('age', 42))], 
+    'g_addV_propertyXnullX': [(lambda g:g.add_v('person').property(None)), (lambda g:g.V().has_label('person').values())], 
+    'g_addV_propertyXemptyX': [(lambda g:g.add_v('person').property({  })), (lambda g:g.V().has_label('person').values())], 
+    'g_addV_propertyXset_nullX': [(lambda g:g.add_v('foo').property(Cardinality.set_, None)), (lambda g:g.V().has_label('foo').values())], 
+    'g_addV_propertyXset_emptyX': [(lambda g:g.add_v('foo').property(Cardinality.set_, {  })), (lambda g:g.V().has_label('person').values())], 
+    'g_addVXpersonX_propertyXname_joshX_propertyXage_nullX': [(lambda g:g.add_v('person').property('name', 'josh').property('age', None)), (lambda g:g.V().has('person', 'age', None))], 
+    'g_addVXpersonX_propertyXname_markoX_propertyXfriendWeight_null_acl_nullX': [(lambda g:g.add_v('person').property('name', 'marko').property('friendWeight', None, 'acl', None)), (lambda g:g.V().has('person', 'name', 'marko').has('friendWeight', None)), (lambda g:g.V().has('person', 'name', 'marko').properties('friendWeight').has('acl', None)), (lambda g:g.V().has('person', 'name', 'marko').properties('friendWeight').count())], 
+    'g_V_hasXperson_name_aliceX_propertyXsingle_age_unionXage_constantX1XX_sumX': [(lambda g:g.add_v('person').property('name', 'alice').property(Cardinality.single, 'age', 50)), (lambda g:g.V().has('person', 'name', 'alice').property('age', __.union(__.values('age'), __.constant(1)).sum_())), (lambda g:g.V().has('person', 'age', 50)), (lambda g:g.V().has('person', 'age', 51))], 
     'g_injectXstrX_asDate': [(lambda g:g.inject('2023-08-02T00:00:00Z').as_date())], 
     'g_injectX1694017707000X_asDate': [(lambda g:g.inject(long(1694017707000)).as_date())], 
     'g_injectX1694017708000LX_asDate': [(lambda g, xx1=None:g.inject(xx1).as_date())], 
@@ -504,149 +505,149 @@ world.gremlins = {
     'g_injectX1_2X_asDate': [(lambda g, xx1=None:g.inject(xx1).as_date())], 
     'g_injectXnullX_asDate': [(lambda g:g.inject(None).as_date())], 
     'g_injectXinvalidstrX_asDate': [(lambda g:g.inject('This String is not an ISO 8601 Date').as_date())], 
-    'g_injectX1_2X_asString': [(lambda g, xx1=None,xx2=None:g.inject(xx1,xx2).as_string())], 
-    'g_injectX1_2X_asStringXlocalX': [(lambda g, xx1=None,xx2=None:g.inject(xx1,xx2).as_string(Scope.local))], 
+    'g_injectX1_2X_asString': [(lambda g, xx1=None,xx2=None:g.inject(xx1, xx2).as_string())], 
+    'g_injectX1_2X_asStringXlocalX': [(lambda g, xx1=None,xx2=None:g.inject(xx1, xx2).as_string(Scope.local))], 
     'g_injectXlist_1_2X_asStringXlocalX': [(lambda g, xx1=None:g.inject(xx1).as_string(Scope.local))], 
-    'g_injectX1_nullX_asString': [(lambda g, xx1=None:g.inject(None,xx1).as_string())], 
+    'g_injectX1_nullX_asString': [(lambda g, xx1=None:g.inject(None, xx1).as_string())], 
     'g_injectX1_nullX_asStringXlocalX': [(lambda g, xx1=None:g.inject(xx1).as_string(Scope.local))], 
-    'g_V_valueMapXnameX_asString': [(lambda g:g.V().valueMap('name').as_string())], 
-    'g_V_valueMapXnameX_order_fold_asStringXlocalX': [(lambda g:g.V().valueMap('name').order().fold().as_string(Scope.local))], 
+    'g_V_valueMapXnameX_asString': [(lambda g:g.V().value_map('name').as_string())], 
+    'g_V_valueMapXnameX_order_fold_asStringXlocalX': [(lambda g:g.V().value_map('name').order().fold().as_string(Scope.local))], 
     'g_V_asString': [(lambda g:g.V().as_string())], 
     'g_V_fold_asStringXlocalX_orderXlocalX': [(lambda g:g.V().fold().as_string(Scope.local).order(Scope.local))], 
     'g_E_asString': [(lambda g:g.E().as_string())], 
     'g_V_properties': [(lambda g:g.V().properties().as_string())], 
-    'g_V_hasLabelXpersonX_valuesXageX_asString': [(lambda g:g.V().hasLabel('person').age.as_string())], 
-    'g_V_hasLabelXpersonX_valuesXageX_order_fold_asStringXlocalX': [(lambda g:g.V().hasLabel('person').age.order().fold().as_string(Scope.local))], 
-    'g_V_hasLabelXpersonX_valuesXageX_asString_concatX_years_oldX': [(lambda g:g.V().hasLabel('person').age.as_string().concat(' years old'))], 
+    'g_V_hasLabelXpersonX_valuesXageX_asString': [(lambda g:g.V().has_label('person').values('age').as_string())], 
+    'g_V_hasLabelXpersonX_valuesXageX_order_fold_asStringXlocalX': [(lambda g:g.V().has_label('person').values('age').order().fold().as_string(Scope.local))], 
+    'g_V_hasLabelXpersonX_valuesXageX_asString_concatX_years_oldX': [(lambda g:g.V().has_label('person').values('age').as_string().concat(' years old'))], 
     'g_call': [(lambda g:g.call())], 
     'g_callXlistX': [(lambda g:g.call('--list'))], 
-    'g_callXlistX_withXstring_stringX': [(lambda g:g.call('--list').with_('service','tinker.search'))], 
-    'g_callXlistX_withXstring_traversalX': [(lambda g:g.call('--list').with_('service',__.constant('tinker.search')))], 
-    'g_callXlist_mapX': [(lambda g, xx1=None:g.call('--list',xx1))], 
-    'g_callXlist_traversalX': [(lambda g:g.call('--list',__.project('service').by(__.constant('tinker.search'))))], 
-    'g_callXlist_map_traversalX': [(lambda g, xx1=None:g.call('--list',xx1,__.project('service').by(__.constant('tinker.search'))))], 
-    'g_callXsearch_mapX': [(lambda g, xx1=None:g.call('tinker.search',xx1).element())], 
-    'g_callXsearch_traversalX': [(lambda g:g.call('tinker.search',__.project('search').by(__.constant('vada'))).element())], 
-    'g_callXsearchX_withXstring_stringX': [(lambda g:g.call('tinker.search').with_('search','vada').element())], 
-    'g_callXsearchX_withXstring_traversalX': [(lambda g:g.call('tinker.search').with_('search',__.constant('vada')).element())], 
-    'g_callXsearch_mapX_withXstring_VertexX': [(lambda g, xx1=None:g.call('tinker.search',xx1).with_('type','Vertex').element())], 
-    'g_callXsearch_mapX_withXstring_EdgeX': [(lambda g, xx1=None:g.call('tinker.search',xx1).with_('type','Edge').element())], 
-    'g_callXsearch_mapX_withXstring_VertexPropertyX': [(lambda g, xx1=None:g.call('tinker.search',xx1).with_('type','VertexProperty').element())], 
-    'g_V_callXdcX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality').project('vertex','degree').by(__.select('v')).by())], 
+    'g_callXlistX_withXstring_stringX': [(lambda g:g.call('--list').with_('service', 'tinker.search'))], 
+    'g_callXlistX_withXstring_traversalX': [(lambda g:g.call('--list').with_('service', __.constant('tinker.search')))], 
+    'g_callXlist_mapX': [(lambda g, xx1=None:g.call('--list', xx1))], 
+    'g_callXlist_traversalX': [(lambda g:g.call('--list', __.project('service').by(__.constant('tinker.search'))))], 
+    'g_callXlist_map_traversalX': [(lambda g, xx1=None:g.call('--list', xx1, __.project('service').by(__.constant('tinker.search'))))], 
+    'g_callXsearch_mapX': [(lambda g, xx1=None:g.call('tinker.search', xx1).element())], 
+    'g_callXsearch_traversalX': [(lambda g:g.call('tinker.search', __.project('search').by(__.constant('vada'))).element())], 
+    'g_callXsearchX_withXstring_stringX': [(lambda g:g.call('tinker.search').with_('search', 'vada').element())], 
+    'g_callXsearchX_withXstring_traversalX': [(lambda g:g.call('tinker.search').with_('search', __.constant('vada')).element())], 
+    'g_callXsearch_mapX_withXstring_VertexX': [(lambda g, xx1=None:g.call('tinker.search', xx1).with_('type', 'Vertex').element())], 
+    'g_callXsearch_mapX_withXstring_EdgeX': [(lambda g, xx1=None:g.call('tinker.search', xx1).with_('type', 'Edge').element())], 
+    'g_callXsearch_mapX_withXstring_VertexPropertyX': [(lambda g, xx1=None:g.call('tinker.search', xx1).with_('type', 'VertexProperty').element())], 
+    'g_V_callXdcX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality').project('vertex', 'degree').by(__.select('v')).by())], 
     'g_V_whereXcallXdcXX': [(lambda g:g.V().where(__.call('tinker.degree.centrality').is_(3)))], 
-    'g_V_callXdcX_withXdirection_OUTX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality').with_('direction',Direction.OUT).project('vertex','degree').by(__.select('v')).by())], 
-    'g_V_callXdc_mapX_withXdirection_OUTX': [(lambda g, xx1=None:g.V().as_('v').call('tinker.degree.centrality',xx1).with_('direction',Direction.OUT).project('vertex','degree').by(__.select('v')).by())], 
-    'g_V_callXdc_traversalX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality',__.project('direction').by(__.constant(Direction.OUT))).project('vertex','degree').by(__.select('v')).by())], 
-    'g_V_callXdc_map_traversalX': [(lambda g, xx1=None:g.V().as_('v').call('tinker.degree.centrality',xx1,__.project('direction').by(__.constant(Direction.OUT))).project('vertex','degree').by(__.select('v')).by())], 
-    'g_V_coalesceXoutXfooX_outXbarXX': [(lambda g:g.V().coalesce(__.out('foo'),__.out('bar')))], 
-    'g_VX1X_coalesceXoutXknowsX_outXcreatedXX_valuesXnameX': [(lambda g, vid1=None:g.V(vid1).coalesce(__.out('knows'),__.out('created')).name)], 
-    'g_VX1X_coalesceXoutXcreatedX_outXknowsXX_valuesXnameX': [(lambda g, vid1=None:g.V(vid1).coalesce(__.out('created'),__.out('knows')).name)], 
-    'g_V_coalesceXoutXlikesX_outXknowsX_inXcreatedXX_groupCount_byXnameX': [(lambda g:g.V().coalesce(__.out('likes'),__.out('knows'),__.out('created')).groupCount().by('name'))], 
-    'g_V_coalesceXoutEXknowsX_outEXcreatedXX_otherV_path_byXnameX_byXlabelX': [(lambda g:g.V().coalesce(__.outE('knows'),__.outE('created')).otherV().path().by('name').by(T.label))], 
-    'g_V_outXcreatedX_order_byXnameX_coalesceXname_constantXxXX': [(lambda g:g.V().out('created').order().by('name').coalesce(__.name,__.constant('x')))], 
+    'g_V_callXdcX_withXdirection_OUTX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality').with_('direction', Direction.OUT).project('vertex', 'degree').by(__.select('v')).by())], 
+    'g_V_callXdc_mapX_withXdirection_OUTX': [(lambda g, xx1=None:g.V().as_('v').call('tinker.degree.centrality', xx1).with_('direction', Direction.OUT).project('vertex', 'degree').by(__.select('v')).by())], 
+    'g_V_callXdc_traversalX': [(lambda g:g.V().as_('v').call('tinker.degree.centrality', __.project('direction').by(__.constant(Direction.OUT))).project('vertex', 'degree').by(__.select('v')).by())], 
+    'g_V_callXdc_map_traversalX': [(lambda g, xx1=None:g.V().as_('v').call('tinker.degree.centrality', xx1, __.project('direction').by(__.constant(Direction.OUT))).project('vertex', 'degree').by(__.select('v')).by())], 
+    'g_V_coalesceXoutXfooX_outXbarXX': [(lambda g:g.V().coalesce(__.out('foo'), __.out('bar')))], 
+    'g_VX1X_coalesceXoutXknowsX_outXcreatedXX_valuesXnameX': [(lambda g, vid1=None:g.V(vid1).coalesce(__.out('knows'), __.out('created')).values('name'))], 
+    'g_VX1X_coalesceXoutXcreatedX_outXknowsXX_valuesXnameX': [(lambda g, vid1=None:g.V(vid1).coalesce(__.out('created'), __.out('knows')).values('name'))], 
+    'g_V_coalesceXoutXlikesX_outXknowsX_inXcreatedXX_groupCount_byXnameX': [(lambda g:g.V().coalesce(__.out('likes'), __.out('knows'), __.out('created')).group_count().by('name'))], 
+    'g_V_coalesceXoutEXknowsX_outEXcreatedXX_otherV_path_byXnameX_byXlabelX': [(lambda g:g.V().coalesce(__.out_e('knows'), __.out_e('created')).other_v().path().by('name').by(T.label))], 
+    'g_V_outXcreatedX_order_byXnameX_coalesceXname_constantXxXX': [(lambda g:g.V().out('created').order().by('name').coalesce(__.values('name'), __.constant('x')))], 
     'g_injectXnullX_combineXinjectX1XX': [(lambda g:g.inject(None).combine(__.inject(1)))], 
-    'g_V_valuesXnameX_combineXV_foldX': [(lambda g:g.V().name.combine(__.V().fold()))], 
+    'g_V_valuesXnameX_combineXV_foldX': [(lambda g:g.V().values('name').combine(__.V().fold()))], 
     'g_V_fold_combineXconstantXnullXX': [(lambda g:g.V().fold().combine(__.constant(None)))], 
     'g_V_fold_combineXVX': [(lambda g:g.V().fold().combine(__.V()))], 
-    'g_V_valuesXnameX_fold_combineX2X': [(lambda g:g.V().name.fold().combine(2))], 
-    'g_V_valuesXnameX_fold_combineXnullX': [(lambda g:g.V().name.fold().combine(None))], 
-    'g_V_valuesXnonexistantX_fold_combineXV_valuesXnameX_foldX_unfold': [(lambda g:g.V().nonexistant.fold().combine(__.V().name.fold()).unfold())], 
-    'g_V_valuesXnameX_fold_combineXV_valuesXnonexistantX_foldX_unfold': [(lambda g:g.V().name.fold().combine(__.V().nonexistant.fold()).unfold())], 
-    'g_V_valuesXageX_order_byXdescX_fold_combineXV_valuesXageX_order_byXdescX_foldX': [(lambda g:g.V().age.order().by(Order.desc).fold().combine(__.V().age.order().by(Order.desc).fold()))], 
-    'g_V_out_path_byXvaluesXnameX_toUpperX_combineXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.name.to_upper()).combine(xx1))], 
-    'g_injectXxx1X_combineXV_valuesXnameX_foldX_unfold': [(lambda g, xx1=None:g.inject(xx1).combine(__.V().name.fold()).unfold())], 
-    'g_V_valueMapXlocationX_selectXvaluesX_unfold_combineXseattle_vancouverX_orderXlocalX': [(lambda g, xx1=None:g.V().valueMap('location').select(Column.values).unfold().combine(xx1).order(Scope.local))], 
+    'g_V_valuesXnameX_fold_combineX2X': [(lambda g:g.V().values('name').fold().combine(2))], 
+    'g_V_valuesXnameX_fold_combineXnullX': [(lambda g:g.V().values('name').fold().combine(None))], 
+    'g_V_valuesXnonexistantX_fold_combineXV_valuesXnameX_foldX_unfold': [(lambda g:g.V().values('nonexistant').fold().combine(__.V().values('name').fold()).unfold())], 
+    'g_V_valuesXnameX_fold_combineXV_valuesXnonexistantX_foldX_unfold': [(lambda g:g.V().values('name').fold().combine(__.V().values('nonexistant').fold()).unfold())], 
+    'g_V_valuesXageX_order_byXdescX_fold_combineXV_valuesXageX_order_byXdescX_foldX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().combine(__.V().values('age').order().by(Order.desc).fold()))], 
+    'g_V_out_path_byXvaluesXnameX_toUpperX_combineXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.values('name').to_upper()).combine(xx1))], 
+    'g_injectXxx1X_combineXV_valuesXnameX_foldX_unfold': [(lambda g, xx1=None:g.inject(xx1).combine(__.V().values('name').fold()).unfold())], 
+    'g_V_valueMapXlocationX_selectXvaluesX_unfold_combineXseattle_vancouverX_orderXlocalX': [(lambda g, xx1=None:g.V().value_map('location').select(Column.values).unfold().combine(xx1).order(Scope.local))], 
     'g_V_out_out_path_byXnameX_combineXempty_listX': [(lambda g, xx1=None:g.V().out().out().path().by('name').combine(xx1))], 
-    'g_V_valuesXageX_order_fold_combineXconstantX27X_foldX': [(lambda g:g.V().age.order().fold().combine(__.constant(27).fold()))], 
+    'g_V_valuesXageX_order_fold_combineXconstantX27X_foldX': [(lambda g:g.V().values('age').order().fold().combine(__.constant(27).fold()))], 
     'g_V_out_out_path_byXnameX_combineXdave_kelvinX': [(lambda g, xx1=None:g.V().out().out().path().by('name').combine(xx1))], 
     'g_injectXa_null_bX_combineXa_cX': [(lambda g, xx1=None,xx2=None:g.inject(xx1).combine(xx2))], 
     'g_injectXa_null_bX_combineXa_null_cX': [(lambda g, xx1=None,xx2=None:g.inject(xx1).combine(xx2))], 
     'g_injectX3_threeX_combineXfive_three_7X': [(lambda g, xx1=None,xx2=None:g.inject(xx1).combine(xx2))], 
-    'g_injectXa_bX_concat': [(lambda g:g.inject('a','b').concat())], 
-    'g_injectXa_bX_concat_XcX': [(lambda g:g.inject('a','b').concat('c'))], 
-    'g_injectXa_bX_concat_Xc_dX': [(lambda g:g.inject('a','b').concat('c','d'))], 
-    'g_injectXa_bX_concat_Xinject_c_dX': [(lambda g:g.inject('a','b').concat(__.inject('c')))], 
+    'g_injectXa_bX_concat': [(lambda g:g.inject('a', 'b').concat())], 
+    'g_injectXa_bX_concat_XcX': [(lambda g:g.inject('a', 'b').concat('c'))], 
+    'g_injectXa_bX_concat_Xc_dX': [(lambda g:g.inject('a', 'b').concat('c', 'd'))], 
+    'g_injectXa_bX_concat_Xinject_c_dX': [(lambda g:g.inject('a', 'b').concat(__.inject('c')))], 
     'g_injectXaX_concat_Xinject_List_b_cX': [(lambda g, xx1=None:g.inject('a').concat(__.inject(xx1)))], 
-    'g_injectXListXa_bXcX_concat_XdX': [(lambda g, xx1=None:g.inject(xx1,'c').concat('d'))], 
+    'g_injectXListXa_bXcX_concat_XdX': [(lambda g, xx1=None:g.inject(xx1, 'c').concat('d'))], 
     'g_injectXnullX_concat_XinjectX': [(lambda g:g.inject(None).concat())], 
-    'g_injectXnull_aX_concat_Xnull_bX': [(lambda g:g.inject(None,'a').concat(None,'b'))], 
-    'g_injectXhello_hiX_concat_XV_valuesXnameXX': [(lambda g:g.inject('hello','hi').concat(__.V().order().by(T.id_).name))], 
-    'g_V_hasLabel_value_concat_X_X_concat_XpersonX': [(lambda g:g.V().hasLabel('person').name.concat(' ').concat('person'))], 
-    'g_hasLabelXpersonX_valuesXnameX_asXaX_constantXMrX_concatXselectXaX': [(lambda g:g.V().hasLabel('person').name.as_('a').constant('Mr.').concat(__.select('a')))], 
-    'g_hasLabelXsoftwareX_asXaX_valuesXnameX_concatXunsesX_concatXselectXaXvaluesXlangX': [(lambda g:g.V().hasLabel('software').as_('a').name.concat(' uses ').concat(__.select('a').lang))], 
-    'g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_labelX_concatXselectXaX_inV_valuesXnameXX': [(lambda g, vid1=None:g.V(vid1).outE().as_('a').V(vid1).name.concat(__.select('a').label()).concat(__.select('a').in_v().name))], 
-    'g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX': [(lambda g, vid1=None:g.V(vid1).outE().as_('a').V(vid1).name.concat(__.select('a').label(),__.select('a').in_v().name))], 
-    'g_addVXconstantXprefix_X_concatXVX1X_labelX_label': [(lambda g, vid1=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').p [...]
+    'g_injectXnull_aX_concat_Xnull_bX': [(lambda g:g.inject(None, 'a').concat(None, 'b'))], 
+    'g_injectXhello_hiX_concat_XV_valuesXnameXX': [(lambda g:g.inject('hello', 'hi').concat(__.V().order().by(T.id_).values('name')))], 
+    'g_V_hasLabel_value_concat_X_X_concat_XpersonX': [(lambda g:g.V().has_label('person').values('name').concat(' ').concat('person'))], 
+    'g_hasLabelXpersonX_valuesXnameX_asXaX_constantXMrX_concatXselectXaX': [(lambda g:g.V().has_label('person').values('name').as_('a').constant('Mr.').concat(__.select('a')))], 
+    'g_hasLabelXsoftwareX_asXaX_valuesXnameX_concatXunsesX_concatXselectXaXvaluesXlangX': [(lambda g:g.V().has_label('software').as_('a').values('name').concat(' uses ').concat(__.select('a').values('lang')))], 
+    'g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_labelX_concatXselectXaX_inV_valuesXnameXX': [(lambda g, vid1=None:g.V(vid1).out_e().as_('a').V(vid1).values('name').concat(__.select('a').label()).concat(__.select('a').in_v().values('name')))], 
+    'g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX': [(lambda g, vid1=None:g.V(vid1).out_e().as_('a').V(vid1).values('name').concat(__.select('a').label(), __.select('a').in_v().values('name')))], 
+    'g_addVXconstantXprefix_X_concatXVX1X_labelX_label': [(lambda g, vid1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property(' [...]
     'g_injectXnullX_conjoinX1X': [(lambda g:g.inject(None).conjoin('1'))], 
-    'g_V_valuesXnameX_conjoinX1X': [(lambda g:g.V().name.conjoin('1'))], 
-    'g_V_valuesXnonexistantX_fold_conjoinX_X': [(lambda g:g.V().nonexistant.fold().conjoin(';'))], 
-    'g_V_valuesXnameX_order_fold_conjoinX_X': [(lambda g:g.V().name.order().fold().conjoin('_'))], 
-    'g_V_valuesXageX_order_fold_conjoinX_X': [(lambda g:g.V().age.order().fold().conjoin(';'))], 
-    'g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX': [(lambda g:g.V().out().path().by(__.name.to_upper()).conjoin('MARKO'))], 
+    'g_V_valuesXnameX_conjoinX1X': [(lambda g:g.V().values('name').conjoin('1'))], 
+    'g_V_valuesXnonexistantX_fold_conjoinX_X': [(lambda g:g.V().values('nonexistant').fold().conjoin(';'))], 
+    'g_V_valuesXnameX_order_fold_conjoinX_X': [(lambda g:g.V().values('name').order().fold().conjoin('_'))], 
+    'g_V_valuesXageX_order_fold_conjoinX_X': [(lambda g:g.V().values('age').order().fold().conjoin(';'))], 
+    'g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX': [(lambda g:g.V().out().path().by(__.values('name').to_upper()).conjoin('MARKO'))], 
     'g_injectXmarkoX_conjoinX_X': [(lambda g, xx1=None:g.inject(xx1).conjoin('-'))], 
-    'g_V_valueMapXlocationX_selectXvaluesX_unfold_orderXlocalX_conjoinX1X': [(lambda g:g.V().valueMap('location').select(Column.values).unfold().order(Scope.local).conjoin('1'))], 
+    'g_V_valueMapXlocationX_selectXvaluesX_unfold_orderXlocalX_conjoinX1X': [(lambda g:g.V().value_map('location').select(Column.values).unfold().order(Scope.local).conjoin('1'))], 
     'g_V_out_out_path_byXnameX_conjoinXX': [(lambda g:g.V().out().out().path().by('name').conjoin(''))], 
     'g_injectXa_null_bX_conjoinXxyzX': [(lambda g, xx1=None:g.inject(xx1).conjoin('xyz'))], 
     'g_injectX3_threeX_conjoinX_X': [(lambda g, xx1=None:g.inject(xx1).conjoin(';'))], 
-    'g_V_connectedComponent_hasXcomponentX': [(lambda g:g.V().connectedComponent().has('gremlin.connectedComponentVertexProgram.component'))], 
-    'g_V_dedup_connectedComponent_hasXcomponentX': [(lambda g:g.V().dedup().connectedComponent().has('gremlin.connectedComponentVertexProgram.component'))], 
-    'g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX': [(lambda g:g.V().hasLabel('software').connectedComponent().project('name','component').by('name').by('gremlin.connectedComponentVertexProgram.component'))], 
-    'g_V_connectedComponent_withXEDGES_bothEXknowsXX_withXPROPERTY_NAME_clusterX_project_byXnameX_byXclusterX': [(lambda g:g.V().hasLabel('person').connectedComponent().with_('~tinkerpop.connectedComponent.edges',__.bothE('knows')).with_('~tinkerpop.connectedComponent.propertyName','cluster').project('name','cluster').by('name').by('cluster'))], 
+    'g_V_connectedComponent_hasXcomponentX': [(lambda g:g.V().connected_component().has('gremlin.connectedComponentVertexProgram.component'))], 
+    'g_V_dedup_connectedComponent_hasXcomponentX': [(lambda g:g.V().dedup().connected_component().has('gremlin.connectedComponentVertexProgram.component'))], 
+    'g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX': [(lambda g:g.V().has_label('software').connected_component().project('name', 'component').by('name').by('gremlin.connectedComponentVertexProgram.component'))], 
+    'g_V_connectedComponent_withXEDGES_bothEXknowsXX_withXPROPERTY_NAME_clusterX_project_byXnameX_byXclusterX': [(lambda g:g.V().has_label('person').connected_component().with_('~tinkerpop.connectedComponent.edges', __.both_e('knows')).with_('~tinkerpop.connectedComponent.propertyName', 'cluster').project('name', 'cluster').by('name').by('cluster'))], 
     'g_V_constantX123X': [(lambda g:g.V().constant(123))], 
     'g_V_constantXnullX': [(lambda g:g.V().constant(None))], 
-    'g_V_chooseXhasLabelXpersonX_valuesXnameX_constantXinhumanXX': [(lambda g:g.V().choose(__.hasLabel('person'),__.name,__.constant('inhuman')))], 
+    'g_V_chooseXhasLabelXpersonX_valuesXnameX_constantXinhumanXX': [(lambda g:g.V().choose(__.has_label('person'), __.values('name'), __.constant('inhuman')))], 
     'g_V_count': [(lambda g:g.V().count())], 
     'g_V_out_count': [(lambda g:g.V().out().count())], 
     'g_V_both_both_count': [(lambda g:g.V().both().both().count())], 
     'g_V_fold_countXlocalX': [(lambda g:g.V().fold().count(Scope.local))], 
     'g_V_hasXnoX_count': [(lambda g:g.V().has('no').count())], 
-    'g_V_whereXinXkknowsX_outXcreatedX_count_is_0XX_name': [(lambda g:g.V().where(__.in_('knows').out('created').count().is_(0)).name)], 
+    'g_V_whereXinXkknowsX_outXcreatedX_count_is_0XX_name': [(lambda g:g.V().where(__.in_('knows').out('created').count().is_(0)).values('name'))], 
     'g_V_repeatXoutX_timesX8X_count': [(lambda g:g.V().repeat(__.out()).times(8).count())], 
-    'g_V_repeatXoutX_timesX5X_asXaX_outXwrittenByX_asXbX_selectXa_bX_count': [(lambda g:g.V().repeat(__.out()).times(5).as_('a').out('writtenBy').as_('b').select('a','b').count())], 
+    'g_V_repeatXoutX_timesX5X_asXaX_outXwrittenByX_asXbX_selectXa_bX_count': [(lambda g:g.V().repeat(__.out()).times(5).as_('a').out('writtenBy').as_('b').select('a', 'b').count())], 
     'g_V_repeatXoutX_timesX3X_count': [(lambda g:g.V().repeat(__.out()).times(3).count())], 
     'g_V_order_byXlangX_count': [(lambda g:g.V().order().by('lang').count())], 
     'g_E_sampleX1X_count': [(lambda g:g.E().sample(1).count())], 
     'g_V_sampleX1X_byXageX_count': [(lambda g:g.V().sample(1).by('age').count())], 
     'g_V_order_byXnoX_count': [(lambda g:g.V().order().by('no').count())], 
-    'g_injectXdatetimeXstrXX_dateAddXDT_hour_2X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_add(DT.hour,2))], 
-    'g_injectXdatetimeXstrXX_dateAddXhour_2X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_add(DT.hour,2))], 
-    'g_injectXdatetimeXstrXX_dateAddXhour_1X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_add(DT.hour,-1))], 
-    'g_injectXdatetimeXstrXX_dateAddXminute_10X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_add(DT.minute,10))], 
-    'g_injectXdatetimeXstrXX_dateAddXsecond_20X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_add(DT.second,20))], 
-    'g_injectXdatetimeXstrXX_dateAddXday_11X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1693958400000 / 1000.0)).date_add(DT.day,11))], 
+    'g_injectXdatetimeXstrXX_dateAddXDT_hour_2X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_add(DT.hour, 2))], 
+    'g_injectXdatetimeXstrXX_dateAddXhour_2X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_add(DT.hour, 2))], 
+    'g_injectXdatetimeXstrXX_dateAddXhour_1X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_add(DT.hour, -1))], 
+    'g_injectXdatetimeXstrXX_dateAddXminute_10X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_add(DT.minute, 10))], 
+    'g_injectXdatetimeXstrXX_dateAddXsecond_20X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_add(DT.second, 20))], 
+    'g_injectXdatetimeXstrXX_dateAddXday_11X': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1693958400000 / 1000.0)).date_add(DT.day, 11))], 
     'g_injectXdatetimeXstr1XX_dateDiffXdatetimeXstr2XX': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1690934400000 / 1000.0)).date_diff(datetime.datetime.utcfromtimestamp(1691539200000 / 1000.0)))], 
     'g_injectXdatetimeXstr1XX_dateDiffXconstantXdatetimeXstr2XXX': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1691452800000 / 1000.0)).date_diff(__.constant(datetime.datetime.utcfromtimestamp(1690848000000 / 1000.0))))], 
     'g_injectXdatetimeXstr1XX_dateDiffXinjectXdatetimeXstr2XXX': [(lambda g:g.inject(datetime.datetime.utcfromtimestamp(1691452800000 / 1000.0)).date_diff(__.inject(datetime.datetime.utcfromtimestamp(1696982400000 / 1000.0))))], 
     'g_injectXnullX_differenceXinjectX1XX': [(lambda g:g.inject(None).difference(__.inject(1)))], 
-    'g_V_valuesXnameX_differenceXV_foldX': [(lambda g:g.V().name.difference(__.V().fold()))], 
+    'g_V_valuesXnameX_differenceXV_foldX': [(lambda g:g.V().values('name').difference(__.V().fold()))], 
     'g_V_fold_differenceXconstantXnullXX': [(lambda g:g.V().fold().difference(__.constant(None)))], 
     'g_V_fold_differenceXVX': [(lambda g:g.V().fold().difference(__.V()))], 
-    'g_V_valuesXnameX_fold_differenceX2X': [(lambda g:g.V().name.fold().difference(2))], 
-    'g_V_valuesXnameX_fold_differenceXnullX': [(lambda g:g.V().name.fold().difference(None))], 
-    'g_V_valuesXnonexistantX_fold_differenceXV_valuesXnameX_foldX': [(lambda g:g.V().nonexistant.fold().difference(__.V().name.fold()))], 
-    'g_V_valuesXnameX_fold_differenceXV_valuesXnonexistantX_foldX': [(lambda g:g.V().name.fold().difference(__.V().nonexistant.fold()))], 
-    'g_V_valuesXageX_fold_differenceXV_valuesXageX_foldX': [(lambda g:g.V().age.fold().difference(__.V().age.fold()))], 
-    'g_V_out_path_byXvaluesXnameX_toUpperX_differenceXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.name.to_upper()).difference(xx1))], 
-    'g_injectXmarkoX_differenceXV_valuesXnameX_foldX': [(lambda g, xx1=None:g.inject(xx1).difference(__.V().name.fold()))], 
-    'g_V_valueMapXlocationX_selectXvaluesX_unfold_differenceXseattle_vancouverX': [(lambda g, xx1=None:g.V().valueMap('location').select(Column.values).unfold().difference(xx1))], 
+    'g_V_valuesXnameX_fold_differenceX2X': [(lambda g:g.V().values('name').fold().difference(2))], 
+    'g_V_valuesXnameX_fold_differenceXnullX': [(lambda g:g.V().values('name').fold().difference(None))], 
+    'g_V_valuesXnonexistantX_fold_differenceXV_valuesXnameX_foldX': [(lambda g:g.V().values('nonexistant').fold().difference(__.V().values('name').fold()))], 
+    'g_V_valuesXnameX_fold_differenceXV_valuesXnonexistantX_foldX': [(lambda g:g.V().values('name').fold().difference(__.V().values('nonexistant').fold()))], 
+    'g_V_valuesXageX_fold_differenceXV_valuesXageX_foldX': [(lambda g:g.V().values('age').fold().difference(__.V().values('age').fold()))], 
+    'g_V_out_path_byXvaluesXnameX_toUpperX_differenceXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.values('name').to_upper()).difference(xx1))], 
+    'g_injectXmarkoX_differenceXV_valuesXnameX_foldX': [(lambda g, xx1=None:g.inject(xx1).difference(__.V().values('name').fold()))], 
+    'g_V_valueMapXlocationX_selectXvaluesX_unfold_differenceXseattle_vancouverX': [(lambda g, xx1=None:g.V().value_map('location').select(Column.values).unfold().difference(xx1))], 
     'g_V_out_out_path_byXnameX_differenceXrippleX': [(lambda g, xx1=None:g.V().out().out().path().by('name').difference(xx1))], 
     'g_V_out_out_path_byXnameX_differenceXempty_listX': [(lambda g, xx1=None:g.V().out().out().path().by('name').difference(xx1))], 
-    'g_V_valuesXageX_fold_differenceXconstantX27X_foldX': [(lambda g:g.V().age.fold().difference(__.constant(27).fold()))], 
+    'g_V_valuesXageX_fold_differenceXconstantX27X_foldX': [(lambda g:g.V().values('age').fold().difference(__.constant(27).fold()))], 
     'g_V_out_out_path_byXnameX_differenceXdave_kelvinX': [(lambda g, xx1=None:g.V().out().out().path().by('name').difference(xx1))], 
     'g_injectXa_null_bX_differenceXa_cX': [(lambda g, xx1=None,xx2=None:g.inject(xx1).difference(xx2))], 
     'g_injectXa_null_bX_differenceXa_null_cX': [(lambda g, xx1=None,xx2=None:g.inject(xx1).difference(xx2))], 
     'g_injectX3_threeX_differenceXfive_three_7X': [(lambda g, xx1=None,xx2=None:g.inject(xx1).difference(xx2))], 
     'g_injectXnullX_disjunctXinjectX1XX': [(lambda g:g.inject(None).disjunct(__.inject(1)))], 
-    'g_V_valuesXnameX_disjunctXV_foldX': [(lambda g:g.V().name.disjunct(__.V().fold()))], 
+    'g_V_valuesXnameX_disjunctXV_foldX': [(lambda g:g.V().values('name').disjunct(__.V().fold()))], 
     'g_V_fold_disjunctXconstantXnullXX': [(lambda g:g.V().fold().disjunct(__.constant(None)))], 
     'g_V_fold_disjunctXVX': [(lambda g:g.V().fold().disjunct(__.V()))], 
-    'g_V_valuesXnameX_fold_disjunctX2X': [(lambda g:g.V().name.fold().disjunct(2))], 
-    'g_V_valuesXnameX_fold_disjunctXnullX': [(lambda g:g.V().name.fold().disjunct(None))], 
-    'g_V_valuesXnonexistantX_fold_disjunctXV_valuesXnameX_foldX': [(lambda g:g.V().nonexistant.fold().disjunct(__.V().name.fold()))], 
-    'g_V_valuesXnameX_fold_disjunctXV_valuesXnonexistantX_foldX': [(lambda g:g.V().name.fold().disjunct(__.V().nonexistant.fold()))], 
-    'g_V_valuesXageX_fold_disjunctXV_valuesXageX_foldX': [(lambda g:g.V().age.fold().disjunct(__.V().age.fold()))], 
-    'g_V_out_path_byXvaluesXnameX_toUpperX_disjunctXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.name.to_upper()).disjunct(xx1))], 
-    'g_V_valueMapXlocationX_selectXvaluesX_unfold_disjunctXseattle_vancouverX': [(lambda g, xx1=None:g.V().valueMap('location').select(Column.values).unfold().disjunct(xx1))], 
+    'g_V_valuesXnameX_fold_disjunctX2X': [(lambda g:g.V().values('name').fold().disjunct(2))], 
+    'g_V_valuesXnameX_fold_disjunctXnullX': [(lambda g:g.V().values('name').fold().disjunct(None))], 
+    'g_V_valuesXnonexistantX_fold_disjunctXV_valuesXnameX_foldX': [(lambda g:g.V().values('nonexistant').fold().disjunct(__.V().values('name').fold()))], 
+    'g_V_valuesXnameX_fold_disjunctXV_valuesXnonexistantX_foldX': [(lambda g:g.V().values('name').fold().disjunct(__.V().values('nonexistant').fold()))], 
+    'g_V_valuesXageX_fold_disjunctXV_valuesXageX_foldX': [(lambda g:g.V().values('age').fold().disjunct(__.V().values('age').fold()))], 
+    'g_V_out_path_byXvaluesXnameX_toUpperX_disjunctXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.values('name').to_upper()).disjunct(xx1))], 
+    'g_V_valueMapXlocationX_selectXvaluesX_unfold_disjunctXseattle_vancouverX': [(lambda g, xx1=None:g.V().value_map('location').select(Column.values).unfold().disjunct(xx1))], 
     'g_V_out_out_path_byXnameX_disjunctXmarkoX': [(lambda g, xx1=None:g.V().out().out().path().by('name').disjunct(xx1))], 
     'g_V_out_out_path_byXnameX_disjunctXstephen_markoX': [(lambda g, xx1=None:g.V().out().out().path().by('name').disjunct(xx1))], 
     'g_V_out_out_path_byXnameX_disjunctXdave_kelvinX': [(lambda g, xx1=None:g.V().out().out().path().by('name').disjunct(xx1))], 
@@ -657,555 +658,555 @@ world.gremlins = {
     'g_EX11X_E': [(lambda g, eid11=None:g.E(eid11).E())], 
     'g_V_EXnullX': [(lambda g:g.V().E(None))], 
     'g_V_EXlistXnullXX': [(lambda g, xx1=None:g.V().E(xx1))], 
-    'g_injectX1X_EX11_nullX': [(lambda g, eid11=None:g.inject(1).E(eid11,None))], 
-    'g_injectX1X_coalesceXEX_hasLabelXtestsX_addEXtestsX_from_V_hasXnameX_XjoshXX_toXV_hasXnameX_XvadasXXX': [(lambda g:g.addV('person').property('name','josh').addV('person').property('name','vadas')), (lambda g:g.inject(1).coalesce(__.E().hasLabel('tests'),__.addE('tests').from_(__.V().has('name','josh')).to(__.V().has('name','vadas')))), (lambda g:g.E().hasLabel('tests'))], 
-    'g_VX1X_properties_element': [(lambda g, v2=None:g.V(v2).properties().element()[0:1])], 
+    'g_injectX1X_EX11_nullX': [(lambda g, eid11=None:g.inject(1).E(eid11, None))], 
+    'g_injectX1X_coalesceXEX_hasLabelXtestsX_addEXtestsX_from_V_hasXnameX_XjoshXX_toXV_hasXnameX_XvadasXXX': [(lambda g:g.add_v('person').property('name', 'josh').add_v('person').property('name', 'vadas')), (lambda g:g.inject(1).coalesce(__.E().has_label('tests'), __.add_e('tests').from_(__.V().has('name', 'josh')).to(__.V().has('name', 'vadas')))), (lambda g:g.E().has_label('tests'))], 
+    'g_VX1X_properties_element': [(lambda g, v2=None:g.V(v2).properties().element().limit(1))], 
     'g_V_properties_element': [(lambda g:g.V().properties().element())], 
     'g_V_propertiesXageX_element': [(lambda g:g.V().properties('age').element())], 
-    'g_EX_properties_element': [(lambda g, eid11=None:g.E(eid11).properties().element()[0:1])], 
+    'g_EX_properties_element': [(lambda g, eid11=None:g.E(eid11).properties().element().limit(1))], 
     'g_E_properties_element': [(lambda g:g.E().properties().element())], 
-    'g_VXv7_properties_properties_element_element': [(lambda g, v7=None:g.V(v7).properties().properties().element().element()[0:1])], 
+    'g_VXv7_properties_properties_element_element': [(lambda g, v7=None:g.V(v7).properties().properties().element().element().limit(1))], 
     'g_V_properties_properties_element_element': [(lambda g, v7=None:g.V(v7).properties().properties().element().element())], 
-    'g_V_elementMap': [(lambda g:g.V().elementMap())], 
-    'g_V_elementMapXname_ageX': [(lambda g:g.V().elementMap('name','age'))], 
-    'g_EX11X_elementMap': [(lambda g, eid11=None:g.E(eid11).elementMap())], 
-    'g_V_elementMapXname_age_nullX': [(lambda g:g.V().elementMap('name','age',None))], 
-    'g_V_asXaX_flatMapXselectXaXX': [(lambda g:g.V().as_('a').flatMap(__.select('a')))], 
+    'g_V_elementMap': [(lambda g:g.V().element_map())], 
+    'g_V_elementMapXname_ageX': [(lambda g:g.V().element_map('name', 'age'))], 
+    'g_EX11X_elementMap': [(lambda g, eid11=None:g.E(eid11).element_map())], 
+    'g_V_elementMapXname_age_nullX': [(lambda g:g.V().element_map('name', 'age', None))], 
+    'g_V_asXaX_flatMapXselectXaXX': [(lambda g:g.V().as_('a').flat_map(__.select('a')))], 
     'g_V_fold': [(lambda g:g.V().fold())], 
     'g_V_fold_unfold': [(lambda g:g.V().fold().unfold())], 
-    'g_V_age_foldX0_plusX': [(lambda g:g.V().age.fold(0,Operator.sum_))], 
-    'g_injectXa1_b2X_foldXm_addAllX': [(lambda g:g.inject({'a':1},{'b':2}).fold({},Operator.addAll))], 
-    'g_injectXa1_b2_b4X_foldXm_addAllX': [(lambda g:g.inject({'a':1},{'b':2},{'b':4}).fold({},Operator.addAll))], 
-    'g_VX1X_formatXstrX': [(lambda g:g.V().has('name','marko').format_('Hello world'))], 
+    'g_V_age_foldX0_plusX': [(lambda g:g.V().values('age').fold(0, Operator.sum_))], 
+    'g_injectXa1_b2X_foldXm_addAllX': [(lambda g:g.inject({ 'a': 1 }, { 'b': 2 }).fold({  }, Operator.add_all))], 
+    'g_injectXa1_b2_b4X_foldXm_addAllX': [(lambda g:g.inject({ 'a': 1 }, { 'b': 2 }, { 'b': 4 }).fold({  }, Operator.add_all))], 
+    'g_VX1X_formatXstrX': [(lambda g:g.V().has('name', 'marko').format_('Hello world'))], 
     'g_V_formatXstrX': [(lambda g:g.V().format_('%{name} is %{age} years old'))], 
     'g_injectX1X_asXageX_V_formatXstrX': [(lambda g:g.inject(1).as_('age').V().format_('%{name} is %{age} years old'))], 
-    'g_V_formatXstrX_byXvaluesXnameXX_byXvaluesXageXX': [(lambda g:g.V().format_('%{_} is %{_} years old').by(__.name).by(__.age))], 
-    'g_V_hasLabelXpersonX_formatXstrX_byXconstantXhelloXX_byXvaluesXnameXX': [(lambda g:g.V().hasLabel('person').format_('%{_} %{_} %{_}').by(__.constant('hello')).by(__.name))], 
-    'g_VX1X_formatXstrX_byXconstantXhelloXX_byXvaluesXnameXX': [(lambda g:g.V(1).format_('%{_}').by(__.constant('hello')).by(__.name))], 
-    'g_V_formatXstrX_byXbothE_countX': [(lambda g:g.V().format_('%{name} has %{_} connections').by(__.bothE().count()))], 
-    'g_V_projectXname_countX_byXvaluesXnameXX_byXbothE_countX_formatXstrX': [(lambda g:g.V().project('name','count').by(__.name).by(__.bothE().count()).format_('%{name} has %{count} connections'))], 
-    'g_V_elementMap_formatXstrX': [(lambda g:g.V().elementMap().format_('%{name} is %{age} years old'))], 
-    'g_V_hasLabelXpersonX_asXaX_valuesXnameX_asXp1X_selectXaX_inXknowsX_formatXstrX': [(lambda g:g.V().hasLabel('person').as_('a').name.as_('p1').select('a').in_('knows').format_('%{p1} knows %{name}'))], 
-    'g_V_asXsX_label_asXsubjectX_selectXsX_outE_asXpX_label_asXpredicateX_selectXpX_inV_label_asXobjectX_formatXstrX': [(lambda g:g.V().as_('s').label().as_('subject').select('s').outE().as_('p').label().as_('predicate').select('p').in_v().label().as_('object').format_('%{subject} %{predicate} %{object}'))], 
-    'g_VX1X_V_valuesXnameX': [(lambda g, vid1=None:g.V(vid1).V().name)], 
-    'g_V_outXknowsX_V_name': [(lambda g:g.V().out('knows').V().name)], 
-    'g_V_hasXname_GarciaX_inXsungByX_asXsongX_V_hasXname_Willie_DixonX_inXwrittenByX_whereXeqXsongXX_name': [(lambda g:g.V().has('artist','name','Garcia').in_('sungBy').as_('song').V().has('artist','name','Willie_Dixon').in_('writtenBy').where(P.eq('song')).name)], 
-    'g_V_hasLabelXpersonX_asXpX_VXsoftwareX_addInEXuses_pX': [(lambda g, xx1=None,vid1=None,vid2=None,vid3=None,vid4=None,vid5=None,vid6=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang', [...]
-    'g_V_hasLabelXsoftwareX_index_unfold': [(lambda g:g.V().hasLabel('software').index().unfold())], 
-    'g_V_hasLabelXsoftwareX_order_byXnameX_index_withXmapX': [(lambda g:g.V().hasLabel('software').order().by('name').index().with_('~tinkerpop.index.indexer',1))], 
-    'g_V_hasLabelXsoftwareX_name_fold_orderXlocalX_index_unfold_order_byXtailXlocal_1XX': [(lambda g:g.V().hasLabel('software').name.fold().order(Scope.local).index().unfold().order().by(__.tail(Scope.local,1)))], 
-    'g_V_hasLabelXpersonX_name_fold_orderXlocalX_index_withXmapX': [(lambda g:g.V().hasLabel('person').name.fold().order(Scope.local).index().with_('~tinkerpop.index.indexer',1))], 
-    'g_VX1X_valuesXageX_index_unfold_unfold': [(lambda g, vid1=None:g.V(vid1).age.index().unfold().unfold())], 
+    'g_V_formatXstrX_byXvaluesXnameXX_byXvaluesXageXX': [(lambda g:g.V().format_('%{_} is %{_} years old').by(__.values('name')).by(__.values('age')))], 
+    'g_V_hasLabelXpersonX_formatXstrX_byXconstantXhelloXX_byXvaluesXnameXX': [(lambda g:g.V().has_label('person').format_('%{_} %{_} %{_}').by(__.constant('hello')).by(__.values('name')))], 
+    'g_VX1X_formatXstrX_byXconstantXhelloXX_byXvaluesXnameXX': [(lambda g:g.V(1).format_('%{_}').by(__.constant('hello')).by(__.values('name')))], 
+    'g_V_formatXstrX_byXbothE_countX': [(lambda g:g.V().format_('%{name} has %{_} connections').by(__.both_e().count()))], 
+    'g_V_projectXname_countX_byXvaluesXnameXX_byXbothE_countX_formatXstrX': [(lambda g:g.V().project('name', 'count').by(__.values('name')).by(__.both_e().count()).format_('%{name} has %{count} connections'))], 
+    'g_V_elementMap_formatXstrX': [(lambda g:g.V().element_map().format_('%{name} is %{age} years old'))], 
+    'g_V_hasLabelXpersonX_asXaX_valuesXnameX_asXp1X_selectXaX_inXknowsX_formatXstrX': [(lambda g:g.V().has_label('person').as_('a').values('name').as_('p1').select('a').in_('knows').format_('%{p1} knows %{name}'))], 
+    'g_V_asXsX_label_asXsubjectX_selectXsX_outE_asXpX_label_asXpredicateX_selectXpX_inV_label_asXobjectX_formatXstrX': [(lambda g:g.V().as_('s').label().as_('subject').select('s').out_e().as_('p').label().as_('predicate').select('p').in_v().label().as_('object').format_('%{subject} %{predicate} %{object}'))], 
+    'g_VX1X_V_valuesXnameX': [(lambda g, vid1=None:g.V(vid1).V().values('name'))], 
+    'g_V_outXknowsX_V_name': [(lambda g:g.V().out('knows').V().values('name'))], 
+    'g_V_hasXname_GarciaX_inXsungByX_asXsongX_V_hasXname_Willie_DixonX_inXwrittenByX_whereXeqXsongXX_name': [(lambda g:g.V().has('artist', 'name', 'Garcia').in_('sungBy').as_('song').V().has('artist', 'name', 'Willie_Dixon').in_('writtenBy').where(P.eq('song')).values('name'))], 
+    'g_V_hasLabelXpersonX_asXpX_VXsoftwareX_addInEXuses_pX': [(lambda g, xx1=None,vid1=None,vid2=None,vid3=None,vid4=None,vid5=None,vid6=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').pr [...]
+    'g_V_hasLabelXsoftwareX_index_unfold': [(lambda g:g.V().has_label('software').index().unfold())], 
+    'g_V_hasLabelXsoftwareX_order_byXnameX_index_withXmapX': [(lambda g:g.V().has_label('software').order().by('name').index().with_(WithOptions.indexer, WithOptions.map))], 
+    'g_V_hasLabelXsoftwareX_name_fold_orderXlocalX_index_unfold_order_byXtailXlocal_1XX': [(lambda g:g.V().has_label('software').values('name').fold().order(Scope.local).index().unfold().order().by(__.tail(Scope.local, 1)))], 
+    'g_V_hasLabelXpersonX_name_fold_orderXlocalX_index_withXmapX': [(lambda g:g.V().has_label('person').values('name').fold().order(Scope.local).index().with_(WithOptions.indexer, WithOptions.map))], 
+    'g_VX1X_valuesXageX_index_unfold_unfold': [(lambda g, vid1=None:g.V(vid1).values('age').index().unfold().unfold())], 
     'g_injectXnullX_intersectXinjectX1XX': [(lambda g:g.inject(None).intersect(__.inject(1)))], 
-    'g_V_valuesXnameX_intersectXV_foldX': [(lambda g:g.V().name.intersect(__.V().fold()))], 
+    'g_V_valuesXnameX_intersectXV_foldX': [(lambda g:g.V().values('name').intersect(__.V().fold()))], 
     'g_V_fold_intersectXconstantXnullXX': [(lambda g:g.V().fold().intersect(__.constant(None)))], 
     'g_V_fold_intersectXVX': [(lambda g:g.V().fold().intersect(__.V()))], 
-    'g_V_valuesXnameX_fold_intersectX2X': [(lambda g:g.V().name.fold().intersect(2))], 
-    'g_V_valuesXnameX_fold_intersectXnullX': [(lambda g:g.V().name.fold().intersect(None))], 
-    'g_V_valuesXnonexistantX_fold_intersectXV_valuesXnameX_foldX': [(lambda g:g.V().nonexistant.fold().intersect(__.V().name.fold()))], 
-    'g_V_valuesXnameX_fold_intersectXV_valuesXnonexistantX_foldX': [(lambda g:g.V().name.fold().intersect(__.V().nonexistant.fold()))], 
-    'g_V_valuesXageX_fold_intersectXV_valuesXageX_foldX_order_local': [(lambda g:g.V().age.fold().intersect(__.V().age.fold()).order(Scope.local))], 
-    'g_V_out_path_byXvaluesXnameX_toUpperX_intersectXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.name.to_upper()).intersect(xx1))], 
-    'g_injectXmarkoX_intersectX___V_valuesXnameX_foldX': [(lambda g, xx1=None:g.inject(xx1).intersect(__.V().name.fold()))], 
-    'g_V_valueMapXlocationX_selectXvaluesX_unfold_intersectXseattle_vancouverX': [(lambda g, xx1=None:g.V().valueMap('location').select(Column.values).unfold().intersect(xx1))], 
-    'g_V_valuesXageX_fold_intersectX___constantX27X_foldX': [(lambda g:g.V().age.fold().intersect(__.constant(27).fold()))], 
+    'g_V_valuesXnameX_fold_intersectX2X': [(lambda g:g.V().values('name').fold().intersect(2))], 
+    'g_V_valuesXnameX_fold_intersectXnullX': [(lambda g:g.V().values('name').fold().intersect(None))], 
+    'g_V_valuesXnonexistantX_fold_intersectXV_valuesXnameX_foldX': [(lambda g:g.V().values('nonexistant').fold().intersect(__.V().values('name').fold()))], 
+    'g_V_valuesXnameX_fold_intersectXV_valuesXnonexistantX_foldX': [(lambda g:g.V().values('name').fold().intersect(__.V().values('nonexistant').fold()))], 
+    'g_V_valuesXageX_fold_intersectXV_valuesXageX_foldX_order_local': [(lambda g:g.V().values('age').fold().intersect(__.V().values('age').fold()).order(Scope.local))], 
+    'g_V_out_path_byXvaluesXnameX_toUpperX_intersectXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.values('name').to_upper()).intersect(xx1))], 
+    'g_injectXmarkoX_intersectX___V_valuesXnameX_foldX': [(lambda g, xx1=None:g.inject(xx1).intersect(__.V().values('name').fold()))], 
+    'g_V_valueMapXlocationX_selectXvaluesX_unfold_intersectXseattle_vancouverX': [(lambda g, xx1=None:g.V().value_map('location').select(Column.values).unfold().intersect(xx1))], 
+    'g_V_valuesXageX_fold_intersectX___constantX27X_foldX': [(lambda g:g.V().values('age').fold().intersect(__.constant(27).fold()))], 
     'g_V_out_out_path_byXnameX_intersectXdave_kelvinX': [(lambda g, xx1=None:g.V().out().out().path().by('name').intersect(xx1))], 
     'g_injectXa_null_bX_intersectXa_cX': [(lambda g, xx1=None,xx2=None:g.inject(xx1).intersect(xx2))], 
     'g_injectXa_null_bX_intersectXa_null_cX': [(lambda g, xx1=None,xx2=None:g.inject(xx1).intersect(xx2))], 
     'g_injectX3_threeX_intersectXfive_three_7X': [(lambda g, xx1=None,xx2=None:g.inject(xx1).intersect(xx2))], 
-    'g_injectX__feature___test__nullX_lTrim': [(lambda g:g.inject('  feature',' one test',None,'',' ').lTrim())], 
-    'g_injectX__feature__X_lTrim': [(lambda g:g.inject('  feature  ').lTrim())], 
-    'g_injectXListXa_bXX_lTrim': [(lambda g, xx1=None:g.inject(xx1).lTrim())], 
-    'g_injectXListX1_2XX_lTrimXlocalX': [(lambda g, xx1=None:g.inject(xx1).lTrim(Scope.local))], 
-    'g_V_valuesXnameX_lTrim': [(lambda g:g.addV('person').property('name',' marko ').property('age',29).as_('marko').addV('person').property('name','  vadas  ').property('age',27).as_('vadas').addV('software').property('name','  lop').property('lang','java').as_('lop').addV('person').property('name','josh  ').property('age',32).as_('josh').addV('software').property('name','   ripple   ').property('lang','java').as_('ripple').addV('person').property('name','peter').property('age',35).as_( [...]
-    'g_V_valuesXnameX_order_fold_lTrimXlocalX': [(lambda g:g.addV('person').property('name',' marko ').property('age',29).as_('marko').addV('person').property('name','  vadas  ').property('age',27).as_('vadas').addV('software').property('name','  lop').property('lang','java').as_('lop').addV('person').property('name','josh  ').property('age',32).as_('josh').addV('software').property('name','   ripple   ').property('lang','java').as_('ripple').addV('person').property('name','peter').prope [...]
-    'g_injectXfeature_test_nullX_length': [(lambda g:g.inject('feature','test',None).length())], 
-    'g_injectXfeature_test_nullX_lengthXlocalX': [(lambda g:g.inject('feature','test',None).length(Scope.local))], 
+    'g_injectX__feature___test__nullX_lTrim': [(lambda g:g.inject('  feature', ' one test', None, '', ' ').l_trim())], 
+    'g_injectX__feature__X_lTrim': [(lambda g:g.inject('  feature  ').l_trim())], 
+    'g_injectXListXa_bXX_lTrim': [(lambda g, xx1=None:g.inject(xx1).l_trim())], 
+    'g_injectXListX1_2XX_lTrimXlocalX': [(lambda g, xx1=None:g.inject(xx1).l_trim(Scope.local))], 
+    'g_V_valuesXnameX_lTrim': [(lambda g:g.add_v('person').property('name', ' marko ').property('age', 29).as_('marko').add_v('person').property('name', '  vadas  ').property('age', 27).as_('vadas').add_v('software').property('name', '  lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh  ').property('age', 32).as_('josh').add_v('software').property('name', '   ripple   ').property('lang', 'java').as_('ripple').add_v('person').property('name', 'peter').proper [...]
+    'g_V_valuesXnameX_order_fold_lTrimXlocalX': [(lambda g:g.add_v('person').property('name', ' marko ').property('age', 29).as_('marko').add_v('person').property('name', '  vadas  ').property('age', 27).as_('vadas').add_v('software').property('name', '  lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh  ').property('age', 32).as_('josh').add_v('software').property('name', '   ripple   ').property('lang', 'java').as_('ripple').add_v('person').property('name [...]
+    'g_injectXfeature_test_nullX_length': [(lambda g:g.inject('feature', 'test', None).length())], 
+    'g_injectXfeature_test_nullX_lengthXlocalX': [(lambda g:g.inject('feature', 'test', None).length(Scope.local))], 
     'g_injectXListXa_bXX_length': [(lambda g, xx1=None:g.inject(xx1).length())], 
-    'g_V_valuesXnameX_length': [(lambda g:g.V().name.length())], 
-    'g_V_valuesXnameX_order_fold_lengthXlocalX': [(lambda g:g.V().name.order().fold().length(Scope.local))], 
-    'g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_or_loops_isX3XX_hasXname_peterX_path_byXnameX': [(lambda g, vid1=None:g.V(vid1).repeat(__.both().simplePath()).until(__.has('name','peter').or_().loops().is_(3)).has('name','peter').path().by('name'))], 
-    'g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_or_loops_isX2XX_hasXname_peterX_path_byXnameX': [(lambda g, vid1=None:g.V(vid1).repeat(__.both().simplePath()).until(__.has('name','peter').or_().loops().is_(2)).has('name','peter').path().by('name'))], 
-    'g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_and_loops_isX3XX_hasXname_peterX_path_byXnameX': [(lambda g, vid1=None:g.V(vid1).repeat(__.both().simplePath()).until(__.has('name','peter').and_().loops().is_(3)).has('name','peter').path().by('name'))], 
-    'g_V_emitXhasXname_markoX_or_loops_isX2XX_repeatXoutX_valuesXnameX': [(lambda g:g.V().emit(__.has('name','marko').or_().loops().is_(2)).repeat(__.out()).name)], 
-    'g_VX1X_mapXnameX': [(lambda g, l1=None,vid1=None:g.V(vid1).map(l1))], 
-    'g_VX1X_outE_label_mapXlengthX': [(lambda g, l1=None,vid1=None:g.V(vid1).outE().label().map(l1))], 
-    'g_VX1X_out_mapXnameX_mapXlengthX': [(lambda g, l1=None,l2=None,vid1=None:g.V(vid1).out().map(l1).map(l2))], 
-    'g_VX1X_out_mapXlambdaXnameXX_mapXlambdaXlengthXX': [(lambda g, vid1=None:g.V(vid1).out().map(lambda: "it.get().value('name')").map(lambda: "it.get().toString().length()"))], 
-    'g_withPath_V_asXaX_out_mapXa_nameX': [(lambda g, l1=None:g.withPath().V().as_('a').out().map(l1))], 
-    'g_withPath_V_asXaX_out_out_mapXa_name_it_nameX': [(lambda g, l1=None:g.withPath().V().as_('a').out().out().map(l1))], 
+    'g_V_valuesXnameX_length': [(lambda g:g.V().values('name').length())], 
+    'g_V_valuesXnameX_order_fold_lengthXlocalX': [(lambda g:g.V().values('name').order().fold().length(Scope.local))], 
+    'g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_or_loops_isX3XX_hasXname_peterX_path_byXnameX': [(lambda g, vid1=None:g.V(vid1).repeat(__.both().simple_path()).until(__.has('name', 'peter').or_().loops().is_(3)).has('name', 'peter').path().by('name'))], 
+    'g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_or_loops_isX2XX_hasXname_peterX_path_byXnameX': [(lambda g, vid1=None:g.V(vid1).repeat(__.both().simple_path()).until(__.has('name', 'peter').or_().loops().is_(2)).has('name', 'peter').path().by('name'))], 
+    'g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_and_loops_isX3XX_hasXname_peterX_path_byXnameX': [(lambda g, vid1=None:g.V(vid1).repeat(__.both().simple_path()).until(__.has('name', 'peter').and_().loops().is_(3)).has('name', 'peter').path().by('name'))], 
+    'g_V_emitXhasXname_markoX_or_loops_isX2XX_repeatXoutX_valuesXnameX': [(lambda g:g.V().emit(__.has('name', 'marko').or_().loops().is_(2)).repeat(__.out()).values('name'))], 
+    'g_VX1X_mapXnameX': [],  # skipping as it contains a lambda
+    'g_VX1X_outE_label_mapXlengthX': [],  # skipping as it contains a lambda
+    'g_VX1X_out_mapXnameX_mapXlengthX': [],  # skipping as it contains a lambda
+    'g_VX1X_out_mapXlambdaXnameXX_mapXlambdaXlengthXX': [],  # skipping as it contains a lambda
+    'g_withPath_V_asXaX_out_mapXa_nameX': [],  # skipping as it contains a lambda
+    'g_withPath_V_asXaX_out_out_mapXa_name_it_nameX': [],  # skipping as it contains a lambda
     'g_V_mapXselectXaXX': [(lambda g:g.V().as_('a').map(__.select('a')))], 
     'g_V_mapXconstantXnullXX': [(lambda g:g.V().map(__.constant(None)))], 
-    'g_V_valueMap_matchXa_selectXnameX_bX': [(lambda g:g.V().valueMap().match(__.as_('a').select('name').as_('b')))], 
+    'g_V_valueMap_matchXa_selectXnameX_bX': [(lambda g:g.V().value_map().match(__.as_('a').select('name').as_('b')))], 
     'g_V_matchXa_out_bX': [(lambda g:g.V().match(__.as_('a').out().as_('b')))], 
     'g_V_matchXa_out_bX_selectXb_idX': [(lambda g:g.V().match(__.as_('a').out().as_('b')).select('b').by(T.id_))], 
-    'g_V_matchXa_knows_b__b_created_cX': [(lambda g:g.V().match(__.as_('a').out('knows').as_('b'),__.as_('b').out('created').as_('c')))], 
-    'g_V_matchXb_created_c__a_knows_bX': [(lambda g:g.V().match(__.as_('b').out('created').as_('c'),__.as_('a').out('knows').as_('b')))], 
-    'g_V_matchXa_created_b__b_0created_cX_whereXa_neq_cX_selectXa_cX': [(lambda g:g.V().match(__.as_('a').out('created').as_('b'),__.as_('b').in_('created').as_('c')).where('a',P.neq('c')).select('a','c'))], 
-    'g_V_matchXd_0knows_a__d_hasXname_vadasX__a_knows_b__b_created_cX': [(lambda g:g.V().match(__.as_('d').in_('knows').as_('a'),__.as_('d').has('name','vadas'),__.as_('a').out('knows').as_('b'),__.as_('b').out('created').as_('c')))], 
-    'g_V_matchXa_created_lop_b__b_0created_29_c__c_whereXrepeatXoutX_timesX2XXX': [(lambda g:g.V().match(__.as_('a').out('created').has('name','lop').as_('b'),__.as_('b').in_('created').has('age',29).as_('c'),__.as_('c').where(__.repeat(__.out()).times(2))))], 
-    'g_V_asXaX_out_asXbX_matchXa_out_count_c__b_in_count_cX': [(lambda g:g.V().as_('a').out().as_('b').match(__.as_('a').out().count().as_('c'),__.as_('b').in_().count().as_('c')))], 
-    'g_V_matchXa__a_out_b__notXa_created_bXX': [(lambda g:g.V().match(__.as_('a').out().as_('b'),__.not_(__.as_('a').out('created').as_('b'))))], 
-    'g_V_matchXa_created_lop_b__b_0created_29_cX_whereXc_repeatXoutX_timesX2XX_selectXa_b_cX': [(lambda g:g.V().match(__.as_('a').out('created').has('name','lop').as_('b'),__.as_('b').in_('created').has('age',29).as_('c')).where(__.as_('c').repeat(__.out()).times(2)).select('a','b','c'))], 
-    'g_V_out_out_matchXa_0created_b__b_0knows_cX_selectXcX_outXcreatedX_name': [(lambda g:g.V().out().out().match(__.as_('a').in_('created').as_('b'),__.as_('b').in_('knows').as_('c')).select('c').out('created').name)], 
-    'g_V_matchXa_knows_b__b_created_c__a_created_cX_dedupXa_b_cX_selectXaX_byXnameX': [(lambda g:g.V().match(__.as_('a').out('knows').as_('b'),__.as_('b').out('created').as_('c'),__.as_('a').out('created').as_('c')).dedup('a','b','c').select('a').by('name'))], 
-    'g_V_matchXa_created_b__a_repeatXoutX_timesX2XX_selectXa_bX': [(lambda g:g.V().match(__.as_('a').out('created').as_('b'),__.as_('a').repeat(__.out()).times(2).as_('b')).select('a','b'))], 
-    'g_V_notXmatchXa_age_b__a_name_cX_whereXb_eqXcXX_selectXaXX_name': [(lambda g:g.V().not_(__.match(__.as_('a').age.as_('b'),__.as_('a').name.as_('c')).where('b',P.eq('c')).select('a')).name)], 
-    'g_V_matchXa_knows_b__andXa_created_c__b_created_c__andXb_created_count_d__a_knows_count_dXXX': [(lambda g:g.V().match(__.as_('a').out('knows').as_('b'),__.and_(__.as_('a').out('created').as_('c'),__.as_('b').out('created').as_('c'),__.and_(__.as_('b').out('created').count().as_('d'),__.as_('a').out('knows').count().as_('d')))))], 
-    'g_V_matchXa_whereXa_neqXcXX__a_created_b__orXa_knows_vadas__a_0knows_and_a_hasXlabel_personXX__b_0created_c__b_0created_count_isXgtX1XXX_selectXa_b_cX_byXidX': [(lambda g:g.V().match(__.where('a',P.neq('c')),__.as_('a').out('created').as_('b'),__.or_(__.as_('a').out('knows').has('name','vadas'),__.as_('a').in_('knows').and_().as_('a').has(T.label,'person')),__.as_('b').in_('created').as_('c'),__.as_('b').in_('created').count().is_(P.gt(1))).select('a','b','c').by(T.id_))], 
-    'g_V_matchXa__a_both_b__b_both_cX_dedupXa_bX': [(lambda g:g.V().match(__.as_('a').both().as_('b'),__.as_('b').both().as_('c')).dedup('a','b'))], 
-    'g_V_matchXa_knows_b__b_created_lop__b_matchXb_created_d__d_0created_cX_selectXcX_cX_selectXa_b_cX': [(lambda g:g.V().match(__.as_('a').out('knows').as_('b'),__.as_('b').out('created').has('name','lop'),__.as_('b').match(__.as_('b').out('created').as_('d'),__.as_('d').in_('created').as_('c')).select('c').as_('c')).select('a','b','c'))], 
-    'g_V_matchXa_knows_b__a_created_cX': [(lambda g:g.V().match(__.as_('a').out('knows').as_('b'),__.as_('a').out('created').as_('c')))], 
-    'g_V_matchXwhereXandXa_created_b__b_0created_count_isXeqX3XXXX__a_both_b__whereXb_inXX': [(lambda g:g.V().match(__.where(__.and_(__.as_('a').out('created').as_('b'),__.as_('b').in_('created').count().is_(P.eq(3)))),__.as_('a').both().as_('b'),__.where(__.as_('b').in_())))], 
-    'g_V_matchXa_outEXcreatedX_order_byXweight_descX_limitX1X_inV_b__b_hasXlang_javaXX_selectXa_bX_byXnameX': [(lambda g:g.V().match(__.as_('a').outE('created').order().by('weight',Order.desc)[0:1].in_v().as_('b'),__.as_('b').has('lang','java')).select('a','b').by('name'))], 
-    'g_V_matchXa_both_b__b_both_cX_dedupXa_bX_byXlabelX': [(lambda g:g.V().match(__.as_('a').both().as_('b'),__.as_('b').both().as_('c')).dedup('a','b').by(T.label))], 
-    'g_V_matchXa_created_b__b_0created_aX': [(lambda g:g.V().match(__.as_('a').out('created').as_('b'),__.as_('b').in_('created').as_('a')))], 
-    'g_V_asXaX_out_asXbX_matchXa_out_count_c__orXa_knows_b__b_in_count_c__and__c_isXgtX2XXXX': [(lambda g:g.V().as_('a').out().as_('b').match(__.as_('a').out().count().as_('c'),__.or_(__.as_('a').out('knows').as_('b'),__.as_('b').in_().count().as_('c').and_().as_('c').is_(P.gt(2)))))], 
+    'g_V_matchXa_knows_b__b_created_cX': [(lambda g:g.V().match(__.as_('a').out('knows').as_('b'), __.as_('b').out('created').as_('c')))], 
+    'g_V_matchXb_created_c__a_knows_bX': [(lambda g:g.V().match(__.as_('b').out('created').as_('c'), __.as_('a').out('knows').as_('b')))], 
+    'g_V_matchXa_created_b__b_0created_cX_whereXa_neq_cX_selectXa_cX': [(lambda g:g.V().match(__.as_('a').out('created').as_('b'), __.as_('b').in_('created').as_('c')).where('a', P.neq('c')).select('a', 'c'))], 
+    'g_V_matchXd_0knows_a__d_hasXname_vadasX__a_knows_b__b_created_cX': [(lambda g:g.V().match(__.as_('d').in_('knows').as_('a'), __.as_('d').has('name', 'vadas'), __.as_('a').out('knows').as_('b'), __.as_('b').out('created').as_('c')))], 
+    'g_V_matchXa_created_lop_b__b_0created_29_c__c_whereXrepeatXoutX_timesX2XXX': [(lambda g:g.V().match(__.as_('a').out('created').has('name', 'lop').as_('b'), __.as_('b').in_('created').has('age', 29).as_('c'), __.as_('c').where(__.repeat(__.out()).times(2))))], 
+    'g_V_asXaX_out_asXbX_matchXa_out_count_c__b_in_count_cX': [(lambda g:g.V().as_('a').out().as_('b').match(__.as_('a').out().count().as_('c'), __.as_('b').in_().count().as_('c')))], 
+    'g_V_matchXa__a_out_b__notXa_created_bXX': [(lambda g:g.V().match(__.as_('a').out().as_('b'), __.not_(__.as_('a').out('created').as_('b'))))], 
+    'g_V_matchXa_created_lop_b__b_0created_29_cX_whereXc_repeatXoutX_timesX2XX_selectXa_b_cX': [(lambda g:g.V().match(__.as_('a').out('created').has('name', 'lop').as_('b'), __.as_('b').in_('created').has('age', 29).as_('c')).where(__.as_('c').repeat(__.out()).times(2)).select('a', 'b', 'c'))], 
+    'g_V_out_out_matchXa_0created_b__b_0knows_cX_selectXcX_outXcreatedX_name': [(lambda g:g.V().out().out().match(__.as_('a').in_('created').as_('b'), __.as_('b').in_('knows').as_('c')).select('c').out('created').values('name'))], 
+    'g_V_matchXa_knows_b__b_created_c__a_created_cX_dedupXa_b_cX_selectXaX_byXnameX': [(lambda g:g.V().match(__.as_('a').out('knows').as_('b'), __.as_('b').out('created').as_('c'), __.as_('a').out('created').as_('c')).dedup('a', 'b', 'c').select('a').by('name'))], 
+    'g_V_matchXa_created_b__a_repeatXoutX_timesX2XX_selectXa_bX': [(lambda g:g.V().match(__.as_('a').out('created').as_('b'), __.as_('a').repeat(__.out()).times(2).as_('b')).select('a', 'b'))], 
+    'g_V_notXmatchXa_age_b__a_name_cX_whereXb_eqXcXX_selectXaXX_name': [(lambda g:g.V().not_(__.match(__.as_('a').values('age').as_('b'), __.as_('a').values('name').as_('c')).where('b', P.eq('c')).select('a')).values('name'))], 
+    'g_V_matchXa_knows_b__andXa_created_c__b_created_c__andXb_created_count_d__a_knows_count_dXXX': [(lambda g:g.V().match(__.as_('a').out('knows').as_('b'), __.and_(__.as_('a').out('created').as_('c'), __.as_('b').out('created').as_('c'), __.and_(__.as_('b').out('created').count().as_('d'), __.as_('a').out('knows').count().as_('d')))))], 
+    'g_V_matchXa_whereXa_neqXcXX__a_created_b__orXa_knows_vadas__a_0knows_and_a_hasXlabel_personXX__b_0created_c__b_0created_count_isXgtX1XXX_selectXa_b_cX_byXidX': [(lambda g:g.V().match(__.where('a', P.neq('c')), __.as_('a').out('created').as_('b'), __.or_(__.as_('a').out('knows').has('name', 'vadas'), __.as_('a').in_('knows').and_().as_('a').has(T.label, 'person')), __.as_('b').in_('created').as_('c'), __.as_('b').in_('created').count().is_(P.gt(1))).select('a', 'b', 'c').by(T.id_))], 
+    'g_V_matchXa__a_both_b__b_both_cX_dedupXa_bX': [(lambda g:g.V().match(__.as_('a').both().as_('b'), __.as_('b').both().as_('c')).dedup('a', 'b'))], 
+    'g_V_matchXa_knows_b__b_created_lop__b_matchXb_created_d__d_0created_cX_selectXcX_cX_selectXa_b_cX': [(lambda g:g.V().match(__.as_('a').out('knows').as_('b'), __.as_('b').out('created').has('name', 'lop'), __.as_('b').match(__.as_('b').out('created').as_('d'), __.as_('d').in_('created').as_('c')).select('c').as_('c')).select('a', 'b', 'c'))], 
+    'g_V_matchXa_knows_b__a_created_cX': [(lambda g:g.V().match(__.as_('a').out('knows').as_('b'), __.as_('a').out('created').as_('c')))], 
+    'g_V_matchXwhereXandXa_created_b__b_0created_count_isXeqX3XXXX__a_both_b__whereXb_inXX': [(lambda g:g.V().match(__.where(__.and_(__.as_('a').out('created').as_('b'), __.as_('b').in_('created').count().is_(P.eq(3)))), __.as_('a').both().as_('b'), __.where(__.as_('b').in_())))], 
+    'g_V_matchXa_outEXcreatedX_order_byXweight_descX_limitX1X_inV_b__b_hasXlang_javaXX_selectXa_bX_byXnameX': [(lambda g:g.V().match(__.as_('a').out_e('created').order().by('weight', Order.desc).limit(1).in_v().as_('b'), __.as_('b').has('lang', 'java')).select('a', 'b').by('name'))], 
+    'g_V_matchXa_both_b__b_both_cX_dedupXa_bX_byXlabelX': [(lambda g:g.V().match(__.as_('a').both().as_('b'), __.as_('b').both().as_('c')).dedup('a', 'b').by(T.label))], 
+    'g_V_matchXa_created_b__b_0created_aX': [(lambda g:g.V().match(__.as_('a').out('created').as_('b'), __.as_('b').in_('created').as_('a')))], 
+    'g_V_asXaX_out_asXbX_matchXa_out_count_c__orXa_knows_b__b_in_count_c__and__c_isXgtX2XXXX': [(lambda g:g.V().as_('a').out().as_('b').match(__.as_('a').out().count().as_('c'), __.or_(__.as_('a').out('knows').as_('b'), __.as_('b').in_().count().as_('c').and_().as_('c').is_(P.gt(2)))))], 
     'g_V_matchXa_knows_count_bX_selectXbX': [(lambda g:g.V().match(__.as_('a').out('knows').count().as_('b')).select('b'))], 
-    'g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_d__c_sungBy_d__d_hasXname_GarciaXX': [(lambda g:g.V().match(__.as_('a').in_('sungBy').as_('b'),__.as_('a').in_('writtenBy').as_('c'),__.as_('b').out('writtenBy').as_('d'),__.as_('c').out('sungBy').as_('d'),__.as_('d').has('name','Garcia')))], 
-    'g_V_matchXa_hasXsong_name_sunshineX__a_mapX0followedBy_weight_meanX_b__a_0followedBy_c__c_filterXweight_whereXgteXbXXX_outV_dX_selectXdX_byXnameX': [(lambda g:g.V().match(__.as_('a').has('song','name','HERE COMES SUNSHINE'),__.as_('a').map(__.inE('followedBy').weight.mean()).as_('b'),__.as_('a').inE('followedBy').as_('c'),__.as_('c').filter_(__.weight.where(P.gte('b'))).out_v().as_('d')).select('d').by('name'))], 
-    'g_V_matchXa_0sungBy_b__a_0sungBy_c__b_writtenBy_d__c_writtenBy_e__d_hasXname_George_HarisonX__e_hasXname_Bob_MarleyXX': [(lambda g:g.V().match(__.as_('a').in_('sungBy').as_('b'),__.as_('a').in_('sungBy').as_('c'),__.as_('b').out('writtenBy').as_('d'),__.as_('c').out('writtenBy').as_('e'),__.as_('d').has('name','George_Harrison'),__.as_('e').has('name','Bob_Marley')))], 
-    'g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__a_0sungBy_bX': [(lambda g:g.V().match(__.as_('a').has('name','Garcia'),__.as_('a').in_('writtenBy').as_('b'),__.as_('a').in_('sungBy').as_('b')))], 
-    'g_V_hasLabelXsongsX_matchXa_name_b__a_performances_cX_selectXb_cX_count': [(lambda g:g.V().hasLabel('song').match(__.as_('a').name.as_('b'),__.as_('a').performances.as_('c')).select('b','c').count())], 
-    'g_V_matchXa_followedBy_count_isXgtX10XX_b__a_0followedBy_count_isXgtX10XX_bX_count': [(lambda g:g.V().match(__.as_('a').out('followedBy').count().is_(P.gt(10)).as_('b'),__.as_('a').in_('followedBy').count().is_(P.gt(10)).as_('b')).count())], 
-    'g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_dX_whereXc_sungBy_dX_whereXd_hasXname_GarciaXX': [(lambda g:g.V().match(__.as_('a').in_('sungBy').as_('b'),__.as_('a').in_('writtenBy').as_('c'),__.as_('b').out('writtenBy').as_('d')).where(__.as_('c').out('sungBy').as_('d')).where(__.as_('d').has('name','Garcia')))], 
-    'g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__b_followedBy_c__c_writtenBy_d__whereXd_neqXaXXX': [(lambda g:g.V().match(__.as_('a').has('name','Garcia'),__.as_('a').in_('writtenBy').as_('b'),__.as_('b').out('followedBy').as_('c'),__.as_('c').out('writtenBy').as_('d'),__.where('d',P.neq('a'))))], 
-    'g_V_matchXa_outXknowsX_name_bX_identity': [(lambda g:g.V().match(__.as_('a').out('knows').name.as_('b')).identity())], 
-    'g_V_outE_mathX0_minus_itX_byXweightX': [(lambda g:g.V().outE().math('0-_').by('weight'))], 
-    'g_V_hasXageX_valueMap_mathXit_plus_itXbyXselectXageX_unfoldXX': [(lambda g:g.V().has('age').valueMap().math('_+_').by(__.select('age').unfold()))], 
+    'g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_d__c_sungBy_d__d_hasXname_GarciaXX': [(lambda g:g.V().match(__.as_('a').in_('sungBy').as_('b'), __.as_('a').in_('writtenBy').as_('c'), __.as_('b').out('writtenBy').as_('d'), __.as_('c').out('sungBy').as_('d'), __.as_('d').has('name', 'Garcia')))], 
+    'g_V_matchXa_hasXsong_name_sunshineX__a_mapX0followedBy_weight_meanX_b__a_0followedBy_c__c_filterXweight_whereXgteXbXXX_outV_dX_selectXdX_byXnameX': [(lambda g:g.V().match(__.as_('a').has('song', 'name', 'HERE COMES SUNSHINE'), __.as_('a').map(__.in_e('followedBy').values('weight').mean()).as_('b'), __.as_('a').in_e('followedBy').as_('c'), __.as_('c').filter_(__.values('weight').where(P.gte('b'))).out_v().as_('d')).select('d').by('name'))], 
+    'g_V_matchXa_0sungBy_b__a_0sungBy_c__b_writtenBy_d__c_writtenBy_e__d_hasXname_George_HarisonX__e_hasXname_Bob_MarleyXX': [(lambda g:g.V().match(__.as_('a').in_('sungBy').as_('b'), __.as_('a').in_('sungBy').as_('c'), __.as_('b').out('writtenBy').as_('d'), __.as_('c').out('writtenBy').as_('e'), __.as_('d').has('name', 'George_Harrison'), __.as_('e').has('name', 'Bob_Marley')))], 
+    'g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__a_0sungBy_bX': [(lambda g:g.V().match(__.as_('a').has('name', 'Garcia'), __.as_('a').in_('writtenBy').as_('b'), __.as_('a').in_('sungBy').as_('b')))], 
+    'g_V_hasLabelXsongsX_matchXa_name_b__a_performances_cX_selectXb_cX_count': [(lambda g:g.V().has_label('song').match(__.as_('a').values('name').as_('b'), __.as_('a').values('performances').as_('c')).select('b', 'c').count())], 
+    'g_V_matchXa_followedBy_count_isXgtX10XX_b__a_0followedBy_count_isXgtX10XX_bX_count': [(lambda g:g.V().match(__.as_('a').out('followedBy').count().is_(P.gt(10)).as_('b'), __.as_('a').in_('followedBy').count().is_(P.gt(10)).as_('b')).count())], 
+    'g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_dX_whereXc_sungBy_dX_whereXd_hasXname_GarciaXX': [(lambda g:g.V().match(__.as_('a').in_('sungBy').as_('b'), __.as_('a').in_('writtenBy').as_('c'), __.as_('b').out('writtenBy').as_('d')).where(__.as_('c').out('sungBy').as_('d')).where(__.as_('d').has('name', 'Garcia')))], 
+    'g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__b_followedBy_c__c_writtenBy_d__whereXd_neqXaXXX': [(lambda g:g.V().match(__.as_('a').has('name', 'Garcia'), __.as_('a').in_('writtenBy').as_('b'), __.as_('b').out('followedBy').as_('c'), __.as_('c').out('writtenBy').as_('d'), __.where('d', P.neq('a'))))], 
+    'g_V_matchXa_outXknowsX_name_bX_identity': [(lambda g:g.V().match(__.as_('a').out('knows').values('name').as_('b')).identity())], 
+    'g_V_outE_mathX0_minus_itX_byXweightX': [(lambda g:g.V().out_e().math('0-_').by('weight'))], 
+    'g_V_hasXageX_valueMap_mathXit_plus_itXbyXselectXageX_unfoldXX': [(lambda g:g.V().has('age').value_map().math('_+_').by(__.select('age').unfold()))], 
     'g_V_asXaX_outXknowsX_asXbX_mathXa_plus_bX_byXageX': [(lambda g:g.V().as_('a').out('knows').as_('b').math('a + b').by('age'))], 
-    'g_withSideEffectXx_100X_V_age_mathX__plus_xX': [(lambda g, xx1=None:g.withSideEffect('x',xx1).V().age.math('_ + x'))], 
+    'g_withSideEffectXx_100X_V_age_mathX__plus_xX': [(lambda g, xx1=None:g.with_side_effect('x', xx1).V().values('age').math('_ + x'))], 
     'g_V_asXaX_outXcreatedX_asXbX_mathXb_plus_aX_byXinXcreatedX_countX_byXageX': [(lambda g:g.V().as_('a').out('created').as_('b').math('b + a').by(__.in_('created').count()).by('age'))], 
-    'g_withSackX1X_injectX1X_repeatXsackXsumX_byXconstantX1XXX_timesX5X_emit_mathXsin__X_byXsackX': [(lambda g:g.withSack(1).inject(1).repeat(__.sack(Operator.sum_).by(__.constant(1))).times(5).emit().math('sin _').by(__.sack()))], 
-    'g_V_projectXa_b_cX_byXbothE_weight_sumX_byXbothE_countX_byXnameX_order_byXmathXa_div_bX_descX_selectXcX': [(lambda g:g.V().project('a','b','c').by(__.bothE().weight.sum_()).by(__.bothE().count()).by('name').order().by(__.math('a / b'),Order.desc).select('c'))], 
+    'g_withSackX1X_injectX1X_repeatXsackXsumX_byXconstantX1XXX_timesX5X_emit_mathXsin__X_byXsackX': [(lambda g:g.with_sack(1).inject(1).repeat(__.sack(Operator.sum_).by(__.constant(1))).times(5).emit().math('sin _').by(__.sack()))], 
+    'g_V_projectXa_b_cX_byXbothE_weight_sumX_byXbothE_countX_byXnameX_order_byXmathXa_div_bX_descX_selectXcX': [(lambda g:g.V().project('a', 'b', 'c').by(__.both_e().values('weight').sum_()).by(__.both_e().count()).by('name').order().by(__.math('a / b'), Order.desc).select('c'))], 
     'g_V_mathXit_plus_itXbyXageX': [(lambda g:g.V().math('_+_').by('age'))], 
-    'g_V_valueMap_mathXit_plus_itXbyXselectXageX_unfoldXX': [(lambda g:g.V().valueMap().math('_+_').by(__.select('age').unfold()))], 
-    'g_VX1X_outE_asXexpectedWeightX_mathXexpectedWeightPlusOneXbyXweightX': [(lambda g, v1=None:g.V(v1).outE().as_('expectedWeight').math('expectedWeight + 1').by('weight'))], 
-    'g_V_age_max': [(lambda g:g.V().age.max_())], 
-    'g_V_foo_max': [(lambda g:g.V().foo.max_())], 
-    'g_V_name_max': [(lambda g:g.V().name.max_())], 
-    'g_V_age_fold_maxXlocalX': [(lambda g:g.V().age.fold().max_(Scope.local))], 
+    'g_V_valueMap_mathXit_plus_itXbyXselectXageX_unfoldXX': [(lambda g:g.V().value_map().math('_+_').by(__.select('age').unfold()))], 
+    'g_VX1X_outE_asXexpectedWeightX_mathXexpectedWeightPlusOneXbyXweightX': [(lambda g, v1=None:g.V(v1).out_e().as_('expectedWeight').math('expectedWeight + 1').by('weight'))], 
+    'g_V_age_max': [(lambda g:g.V().values('age').max_())], 
+    'g_V_foo_max': [(lambda g:g.V().values('foo').max_())], 
+    'g_V_name_max': [(lambda g:g.V().values('name').max_())], 
+    'g_V_age_fold_maxXlocalX': [(lambda g:g.V().values('age').fold().max_(Scope.local))], 
     'g_V_aggregateXaX_byXageX_capXaX_maxXlocalX': [(lambda g:g.V().aggregate('a').by('age').cap('a').max_(Scope.local))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_maxXlocalX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('age').cap('a').max_(Scope.local))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_maxXlocalX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('age').cap('a').max_(Scope.local))], 
     'g_V_aggregateXaX_byXageX_capXaX_unfold_max': [(lambda g:g.V().aggregate('a').by('age').cap('a').unfold().max_())], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_max': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('age').cap('a').unfold().max_())], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_max': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('age').cap('a').unfold().max_())], 
     'g_V_aggregateXaX_byXfooX_capXaX_maxXlocalX': [(lambda g:g.V().aggregate('a').by('foo').cap('a').max_(Scope.local))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_maxXlocalX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('foo').cap('a').max_(Scope.local))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_maxXlocalX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('foo').cap('a').max_(Scope.local))], 
     'g_V_aggregateXaX_byXfooX_capXaX_unfold_max': [(lambda g:g.V().aggregate('a').by('foo').cap('a').unfold().max_())], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_max': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('foo').cap('a').unfold().max_())], 
-    'g_V_foo_fold_maxXlocalX': [(lambda g:g.V().foo.fold().max_(Scope.local))], 
-    'g_V_name_fold_maxXlocalX': [(lambda g:g.V().name.fold().max_(Scope.local))], 
-    'g_V_repeatXbothX_timesX5X_age_max': [(lambda g:g.V().repeat(__.both()).times(5).age.max_())], 
-    'g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_maxX': [(lambda g:g.V().hasLabel('software').group().by('name').by(__.bothE().weight.max_()))], 
-    'g_VX1X_valuesXageX_maxXlocalX': [(lambda g, vid1=None:g.V(vid1).age.max_(Scope.local))], 
-    'g_V_age_mean': [(lambda g:g.V().age.mean())], 
-    'g_V_foo_mean': [(lambda g:g.V().foo.mean())], 
-    'g_V_age_fold_meanXlocalX': [(lambda g:g.V().age.fold().mean(Scope.local))], 
-    'g_V_foo_fold_meanXlocalX': [(lambda g:g.V().foo.fold().mean(Scope.local))], 
-    'g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_meanX': [(lambda g:g.V().hasLabel('software').group().by('name').by(__.bothE().weight.mean()))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_max': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('foo').cap('a').unfold().max_())], 
+    'g_V_foo_fold_maxXlocalX': [(lambda g:g.V().values('foo').fold().max_(Scope.local))], 
+    'g_V_name_fold_maxXlocalX': [(lambda g:g.V().values('name').fold().max_(Scope.local))], 
+    'g_V_repeatXbothX_timesX5X_age_max': [(lambda g:g.V().repeat(__.both()).times(5).values('age').max_())], 
+    'g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_maxX': [(lambda g:g.V().has_label('software').group().by('name').by(__.both_e().values('weight').max_()))], 
+    'g_VX1X_valuesXageX_maxXlocalX': [(lambda g, vid1=None:g.V(vid1).values('age').max_(Scope.local))], 
+    'g_V_age_mean': [(lambda g:g.V().values('age').mean())], 
+    'g_V_foo_mean': [(lambda g:g.V().values('foo').mean())], 
+    'g_V_age_fold_meanXlocalX': [(lambda g:g.V().values('age').fold().mean(Scope.local))], 
+    'g_V_foo_fold_meanXlocalX': [(lambda g:g.V().values('foo').fold().mean(Scope.local))], 
+    'g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_meanX': [(lambda g:g.V().has_label('software').group().by('name').by(__.both_e().values('weight').mean()))], 
     'g_V_aggregateXaX_byXageX_meanXlocalX': [(lambda g:g.V().aggregate('a').by('age').cap('a').mean(Scope.local))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_meanXlocalX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('age').cap('a').mean(Scope.local))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_meanXlocalX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('age').cap('a').mean(Scope.local))], 
     'g_V_aggregateXaX_byXageX_capXaX_unfold_mean': [(lambda g:g.V().aggregate('a').by('age').cap('a').unfold().mean())], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_mean': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('age').cap('a').unfold().mean())], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_mean': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('age').cap('a').unfold().mean())], 
     'g_V_aggregateXaX_byXfooX_meanXlocalX': [(lambda g:g.V().aggregate('a').by('foo').cap('a').mean(Scope.local))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_meanXlocalX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('foo').cap('a').mean(Scope.local))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_meanXlocalX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('foo').cap('a').mean(Scope.local))], 
     'g_V_aggregateXaX_byXfooX_capXaX_unfold_mean': [(lambda g:g.V().aggregate('a').by('foo').cap('a').unfold().mean())], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_mean': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('foo').cap('a').unfold().mean())], 
-    'g_injectXnull_10_20_nullX_mean': [(lambda g, xx1=None,xx2=None:g.inject(None,xx1,xx2,None).mean())], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_mean': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('foo').cap('a').unfold().mean())], 
+    'g_injectXnull_10_20_nullX_mean': [(lambda g, xx1=None,xx2=None:g.inject(None, xx1, xx2, None).mean())], 
     'g_injectXlistXnull_10_20_nullXX_meanXlocalX': [(lambda g, xx1=None:g.inject(xx1).mean(Scope.local))], 
-    'g_VX1X_valuesXageX_meanXlocalX': [(lambda g, vid1=None:g.V(vid1).age.mean(Scope.local))], 
+    'g_VX1X_valuesXageX_meanXlocalX': [(lambda g, vid1=None:g.V(vid1).values('age').mean(Scope.local))], 
     'g_injectXnullX_mergeXinjectX1XX': [(lambda g:g.inject(None).merge(__.inject(1)))], 
-    'g_V_valuesXnameX_mergeXV_foldX': [(lambda g:g.V().name.merge(__.V().fold()))], 
+    'g_V_valuesXnameX_mergeXV_foldX': [(lambda g:g.V().values('name').merge(__.V().fold()))], 
     'g_V_fold_mergeXconstantXnullXX': [(lambda g:g.V().fold().merge(__.constant(None)))], 
     'g_V_fold_mergeXVX': [(lambda g:g.V().fold().merge(__.V()))], 
-    'g_V_elementMap_mergeXconstantXaXX': [(lambda g:g.V().elementMap().merge(__.constant('a')))], 
+    'g_V_elementMap_mergeXconstantXaXX': [(lambda g:g.V().element_map().merge(__.constant('a')))], 
     'g_V_fold_mergeXV_asXaX_projectXaX_byXnameXX': [(lambda g:g.V().fold().merge(__.V().as_('a').project('a').by('name')))], 
     'g_V_fold_mergeXk_vX': [(lambda g, xx1=None:g.V().fold().merge(xx1))], 
-    'g_V_valuesXnameX_fold_mergeX2X': [(lambda g:g.V().name.fold().merge(2))], 
-    'g_V_valuesXnameX_fold_mergeXnullX': [(lambda g:g.V().name.fold().merge(None))], 
-    'g_V_valuesXnonexistantX_fold_mergeXV_valuesXnameX_foldX': [(lambda g:g.V().nonexistant.fold().merge(__.V().name.fold()))], 
-    'g_V_valuesXnameX_fold_mergeXV_valuesXnonexistantX_foldX': [(lambda g:g.V().name.fold().merge(__.V().nonexistant.fold()))], 
-    'g_V_valuesXageX_fold_mergeXV_valuesXageX_foldX': [(lambda g:g.V().age.fold().merge(__.V().age.fold()))], 
-    'g_V_out_path_byXvaluesXnameX_toUpperX_mergeXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.name.to_upper()).merge(xx1))], 
-    'g_injectXmarkoX_mergeXV_valuesXnameX_foldX': [(lambda g, xx1=None:g.inject(xx1).merge(__.V().name.fold()))], 
-    'g_V_valueMapXlocationX_selectXvaluesX_unfold_mergeXseattle_vancouverX': [(lambda g, xx1=None:g.V().valueMap('location').select(Column.values).unfold().merge(xx1))], 
+    'g_V_valuesXnameX_fold_mergeX2X': [(lambda g:g.V().values('name').fold().merge(2))], 
+    'g_V_valuesXnameX_fold_mergeXnullX': [(lambda g:g.V().values('name').fold().merge(None))], 
+    'g_V_valuesXnonexistantX_fold_mergeXV_valuesXnameX_foldX': [(lambda g:g.V().values('nonexistant').fold().merge(__.V().values('name').fold()))], 
+    'g_V_valuesXnameX_fold_mergeXV_valuesXnonexistantX_foldX': [(lambda g:g.V().values('name').fold().merge(__.V().values('nonexistant').fold()))], 
+    'g_V_valuesXageX_fold_mergeXV_valuesXageX_foldX': [(lambda g:g.V().values('age').fold().merge(__.V().values('age').fold()))], 
+    'g_V_out_path_byXvaluesXnameX_toUpperX_mergeXMARKOX': [(lambda g, xx1=None:g.V().out().path().by(__.values('name').to_upper()).merge(xx1))], 
+    'g_injectXmarkoX_mergeXV_valuesXnameX_foldX': [(lambda g, xx1=None:g.inject(xx1).merge(__.V().values('name').fold()))], 
+    'g_V_valueMapXlocationX_selectXvaluesX_unfold_mergeXseattle_vancouverX': [(lambda g, xx1=None:g.V().value_map('location').select(Column.values).unfold().merge(xx1))], 
     'g_V_out_out_path_byXnameX_mergeXempty_listX': [(lambda g, xx1=None:g.V().out().out().path().by('name').merge(xx1))], 
-    'g_V_valuesXageX_fold_mergeXconstantX27X_foldX': [(lambda g:g.V().age.fold().merge(__.constant(27).fold()))], 
+    'g_V_valuesXageX_fold_mergeXconstantX27X_foldX': [(lambda g:g.V().values('age').fold().merge(__.constant(27).fold()))], 
     'g_V_out_out_path_byXnameX_mergeXdave_kelvinX': [(lambda g, xx1=None:g.V().out().out().path().by('name').merge(xx1))], 
     'g_injectXa_null_bX_mergeXa_cX': [(lambda g, xx1=None,xx2=None:g.inject(xx1).merge(xx2))], 
     'g_injectXa_null_bX_mergeXa_null_cX': [(lambda g, xx1=None,xx2=None:g.inject(xx1).merge(xx2))], 
     'g_injectX3_threeX_mergeXfive_three_7X': [(lambda g, xx1=None,xx2=None:g.inject(xx1).merge(xx2))], 
     'g_V_asXnameX_projectXnameX_byXnameX_mergeXother_blueprintX': [(lambda g, xx1=None:g.V().as_('name').project('name').by('name').merge(xx1))], 
-    'g_V_hasXname_markoX_elementMap_mergeXV_hasXname_lopX_elementMapX': [(lambda g:g.V().has('name','marko').elementMap().merge(__.V().has('name','lop').elementMap()))], 
-    'g_V_mergeEXlabel_selfX_optionXonMatch_emptyX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29).addE('self')), (lambda g, xx1=None:g.V().merge_e(xx1).option(Merge.on_match,{})), (lambda g, xx1=None:g.E()), (lambda g, xx1=None:g.E().properties()), (lambda g, xx1=None:g.V())], 
-    'g_V_mergeEXlabel_selfX_optionXonMatch_nullX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29).addE('self')), (lambda g, xx1=None:g.V().merge_e(xx1).option(Merge.on_match,None)), (lambda g, xx1=None:g.E()), (lambda g, xx1=None:g.E().properties()), (lambda g, xx1=None:g.V())], 
-    'g_V_mergeEXemptyX_optionXonCreate_nullX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.V().as_('v').merge_e(xx1).option(Merge.on_create,None).option(Merge.out_v,__.select('v')).option(Merge.in_v,__.select('v'))), (lambda g, xx1=None:g.E()), (lambda g, xx1=None:g.V())], 
-    'g_mergeEXemptyX_exists': [(lambda g:g.addV('person').property('name','marko').property('age',29).addE('self')), (lambda g:g.merge_e({})), (lambda g:g.E()), (lambda g:g.V())], 
-    'g_mergeEXemptyX': [(lambda g:g.addV('person').property('name','marko').property('age',29)), (lambda g:g.merge_e({}))], 
-    'g_V_mergeEXemptyX_two_exist': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29).addV('person').property('name','vadas').property('age',27)), (lambda g, xx1=None:g.V().as_('v').merge_e(xx1).option(Merge.out_v,__.select('v')).option(Merge.in_v,__.select('v'))), (lambda g, xx1=None:g.E()), (lambda g, xx1=None:g.V())], 
-    'g_mergeEXnullX': [(lambda g:g.addV('person').property('name','marko').property('age',29)), (lambda g:g.merge_e(None))], 
-    'g_V_mergeEXnullX': [(lambda g:g.addV('person').property('name','marko').property('age',29)), (lambda g:g.V().merge_e(None))], 
-    'g_mergeEXlabel_knows_out_marko_in_vadasX': [(lambda g, xx1=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None:g.merge_e(xx1)), (lambda g, xx1=None:g.V().has('person','name','marko').out('knows').has('person','name','vadas'))], 
-    'g_withSideEffectXa_label_knows_out_marko_in_vadasX_mergeEXselectXaXX': [(lambda g, xx1=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None:g.withSideEffect('a',xx1).merge_e(__.select('a'))), (lambda g, xx1=None:g.V().has('person','name','marko').out('knows').has('person','name','vadas'))], 
-    'g_mergeEXlabel_knows_out_marko1_in_vadas1X': [(lambda g, xx1=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None:g.merge_e(xx1)), (lambda g, xx1=None:g.V().has('person','name','marko').out('knows').has('person','name','vadas'))], 
-    'g_mergeEXlabel_knows_out_marko_in_vadas_weight_05X_exists': [(lambda g, xx1=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b').addE('knows').from_('a').to('b')), (lambda g, xx1=None:g.merge_e(xx1)), (lambda g, xx1=None:g.V().has('person','name','marko').outE('knows').has('weight',float(0.5)).in_v().has('person','name','vadas')), (lambda g, xx1=None:g.V().has('person','name','marko').out('knows').has('person','name','vadas'))], 
+    'g_V_hasXname_markoX_elementMap_mergeXV_hasXname_lopX_elementMapX': [(lambda g:g.V().has('name', 'marko').element_map().merge(__.V().has('name', 'lop').element_map()))], 
+    'g_V_mergeEXlabel_selfX_optionXonMatch_emptyX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29).add_e('self')), (lambda g, xx1=None:g.V().merge_e(xx1).option(Merge.on_match, {  })), (lambda g, xx1=None:g.E()), (lambda g, xx1=None:g.E().properties()), (lambda g, xx1=None:g.V())], 
+    'g_V_mergeEXlabel_selfX_optionXonMatch_nullX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29).add_e('self')), (lambda g, xx1=None:g.V().merge_e(xx1).option(Merge.on_match, None)), (lambda g, xx1=None:g.E()), (lambda g, xx1=None:g.E().properties()), (lambda g, xx1=None:g.V())], 
+    'g_V_mergeEXemptyX_optionXonCreate_nullX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.V().as_('v').merge_e(xx1).option(Merge.on_create, None).option(Merge.out_v, __.select('v')).option(Merge.in_v, __.select('v'))), (lambda g, xx1=None:g.E()), (lambda g, xx1=None:g.V())], 
+    'g_mergeEXemptyX_exists': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).add_e('self')), (lambda g:g.merge_e({  })), (lambda g:g.E()), (lambda g:g.V())], 
+    'g_mergeEXemptyX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g:g.merge_e({  }))], 
+    'g_V_mergeEXemptyX_two_exist': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29).add_v('person').property('name', 'vadas').property('age', 27)), (lambda g, xx1=None:g.V().as_('v').merge_e(xx1).option(Merge.out_v, __.select('v')).option(Merge.in_v, __.select('v'))), (lambda g, xx1=None:g.E()), (lambda g, xx1=None:g.V())], 
+    'g_mergeEXnullX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g:g.merge_e(None))], 
+    'g_V_mergeEXnullX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g:g.V().merge_e(None))], 
+    'g_mergeEXlabel_knows_out_marko_in_vadasX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None:g.merge_e(xx1)), (lambda g, xx1=None:g.V().has('person', 'name', 'marko').out('knows').has('person', 'name', 'vadas'))], 
+    'g_withSideEffectXa_label_knows_out_marko_in_vadasX_mergeEXselectXaXX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None:g.with_side_effect('a', xx1).merge_e(__.select('a'))), (lambda g, xx1=None:g.V().has('person', 'name', 'marko').out('knows').has('person', 'name', 'vadas'))], 
+    'g_mergeEXlabel_knows_out_marko1_in_vadas1X': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None:g.merge_e(xx1)), (lambda g, xx1=None:g.V().has('person', 'name', 'marko').out('knows').has('person', 'name', 'vadas'))], 
+    'g_mergeEXlabel_knows_out_marko_in_vadas_weight_05X_exists': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b').add_e('knows').from_('a').to('b')), (lambda g, xx1=None:g.merge_e(xx1)), (lambda g, xx1=None:g.V().has('person', 'name', 'marko').out_e('knows').has('weight', 0.5).in_v().has('person', 'name', 'vadas')), (lambda g, xx1=None:g.V().has('person', 'name', 'marko').out('knows').has('person', 'name', 'vadas'))], 
     'g_mergeEXlabel_knows_out_marko_in_vadas_weight_05X': [(lambda g, xx1=None:g.merge_e(xx1))], 
-    'g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX': [(lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2).option(Merge.on_match,xx3))], 
-    'g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b').addE('knows').from_('a').to('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2).option(Merge.on_match,xx3)), (lambda g, xx1=None,xx3=None,xx2=None:g.V()), (lambda g, xx1=None,xx3=None,xx2=None:g.E().hasLabel(' [...]
-    'g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b').addE('knows').from_('a').to('b').property('created','Y')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2).option(Merge.on_match,xx3)), (lambda g, xx1=None,xx3=None,xx2=None:g.V()), (lambda g, xx1=None,xx [...]
-    'g_V_hasXperson_name_marko_X_mergeEXlabel_knowsX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b').addE('knows').from_('a').to('b').property('created','Y').addE('knows').from_('a').to('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.V().has('person','name','marko').merge_e(xx1).option(Merge.on_create,xx2).option(Merge.on_match,xx [...]
-    'g_injectXlabel_knows_out_marko_in_vadasX_mergeE': [(lambda g, xx1=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None:g.inject(xx1).merge_e()), (lambda g, xx1=None:g.V().has('person','name','marko').out('knows').has('person','name','vadas'))], 
-    'g_mergeEXlabel_knows_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b').addE('knows').from_('a').to('b').property('created','Y').addE('knows').from_('b').to('a').property('created','Y')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2).option(Merge.on_match,xx3)), (lambda g, xx1=None,x [...]
-    'g_mergeEXlabel_knows_out_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b').addE('knows').from_('a').to('b').property('created','Y').addE('knows').from_('b').to('a').property('created','Y')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2).option(Merge.on_match,xx3)), (lambda g, xx1=None, [...]
-    'g_mergeEXout_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b').addE('knows').from_('a').to('b').property('created','Y').addE('knows').from_('b').to('a').property('created','Y')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2).option(Merge.on_match,xx3)), (lambda g, xx1=None,xx3=None,xx2 [...]
-    'g_V_hasXperson_name_marko_X_mergeEXlabel_self_out_vadas1_in_vadas1X': [(lambda g, xx1=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None:g.V().has('person','name','marko').merge_e(xx1)), (lambda g, xx1=None:g.V()), (lambda g, xx1=None:g.E()), (lambda g, xx1=None:g.E().hasLabel('self').bothV().has('name','vadas'))], 
-    'g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_selectXcXX_optionXonMatch_selectXmXX_exists': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b').addE('knows').from_('a').to('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.withSideEffect('c',xx2).withSideEffect('m',xx3).merge_e(xx1).option(Merge.on_create,__.select('c')).option(Merge.on_ [...]
-    'g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_selectXcXX_optionXonMatch_selectXmXX': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.withSideEffect('c',xx2).withSideEffect('m',xx3).merge_e(xx1).option(Merge.on_create,__.select('c')).option(Merge.on_match,__.select('m'))), (lambda g, xx1=N [...]
-    'g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko1_in_vadas1X_optionXonCreate_selectXcXX_optionXonMatch_selectXmXX': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.withSideEffect('c',xx2).withSideEffect('m',xx3).merge_e(xx1).option(Merge.on_create,__.select('c')).option(Merge.on_match,__.select('m'))), (lambda g, xx1 [...]
-    'g_mergeEXlabel_knows_out_marko_in_vadasX_aliased_direction': [(lambda g, xx1=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None:g.merge_e(xx1)), (lambda g, xx1=None:g.V().has('person','name','marko').out('knows').has('person','name','vadas'))], 
-    'g_injectXlabel_knows_out_marko_in_vadas_label_self_out_vadas_in_vadasX': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None,xx2=None:g.inject(xx1,xx2).merge_e()), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.E()), (lambda g, xx1=None,xx2=None:g.V().has('person','name','marko').out('knows').has('person','name','vadas')), (lambda g, xx1=None,xx2=None:g.V().has('person','name','vad [...]
-    'g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_selectXcXX_optionXonMatch_sideEffectXpropertiesXweightX_dropX_selectXmXX_exists': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').as_('a').addV('person').property('name','vadas').as_('b').addE('knows').property('weight',1).from_('a').to('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.withSideEffect('c',xx2).withSideEffect('m',xx3).merge_e(xx1 [...]
-    'g_mergeE_with_outVinV_options_map': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.out_v,xx2).option(Merge.in_v,xx3)), (lambda g, xx1=None,xx3=None,xx2=None:g.V()), (lambda g, xx1=None,xx3=None,xx2=None:g.V().has('name','marko').out('knows').has('name','vadas'))], 
-    'g_mergeE_with_outVinV_options_select': [(lambda g, xx1=None,vid2=None,vid1=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None,vid2=None,vid1=None:g.V(vid1).as_('x').V(vid2).as_('y').merge_e(xx1).option(Merge.out_v,__.select('x')).option(Merge.in_v,__.select('y'))), (lambda g, xx1=None,vid2=None,vid1=None:g.V()), (lambda g, xx1=None,vid2=None,vid1=None:g.V().has('name','marko').out('knows').has('name','vadas'))], 
-    'g_mergeE_with_eid_specified_and_inheritance_1': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2)), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.E()), (lambda g, xx1=None,xx2=None:g.E('201')), (lambda g, xx1=None,xx2=None:g.V().has('name','marko').out('knows').has('name','vadas'))], 
-    'g_mergeE_with_eid_specified_and_inheritance_2': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2)), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.E()), (lambda g, xx1=None,xx2=None:g.E('201')), (lambda g, xx1=None,xx2=None:g.V().has('name','marko').out('knows').has('name','vadas'))], 
-    'g_mergeE_outV_override_prohibited': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2))], 
-    'g_mergeE_inV_override_prohibited': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2))], 
-    'g_mergeE_label_override_prohibited': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2))], 
-    'g_mergeE_id_override_prohibited': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create,xx2))], 
-    'g_mergeV_mergeE_combination_new_vertices': [(lambda g, xx1=None,xx3=None,xx2=None:g.merge_v(xx1).as_('outV').merge_v(xx2).as_('inV').merge_e(xx3).option(Merge.out_v,__.select('outV')).option(Merge.in_v,__.select('inV'))), (lambda g, xx1=None,xx3=None,xx2=None:g.V()), (lambda g, xx1=None,xx3=None,xx2=None:g.E()), (lambda g, xx1=None,xx3=None,xx2=None:g.V().has('name','marko').out('knows').has('name','vadas'))], 
-    'g_mergeV_mergeE_combination_existing_vertices': [(lambda g, xx1=None,xx3=None,xx2=None:g.addV('person').property('name','marko').addV('person').property('name','vadas')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_v(xx1).as_('outV').merge_v(xx2).as_('inV').merge_e(xx3).option(Merge.out_v,__.select('outV')).option(Merge.in_v,__.select('inV'))), (lambda g, xx1=None,xx3=None,xx2=None:g.V()), (lambda g, xx1=None,xx3=None,xx2=None:g.E()), (lambda g, xx1=None,xx3=None,xx2=None:g.V().ha [...]
-    'g_V_asXvX_mergeEXxx1X_optionXMerge_onMatch_xx2X_optionXMerge_outV_selectXvXX_optionXMerge_inV_selectXvXX': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.V().as_('v').merge_e(xx1).option(Merge.on_match,xx2).option(Merge.out_v,__.select('v')).option(Merge.in_v,__.select('v')))], 
-    'g_mergeVXemptyX_optionXonMatch_nullX': [(lambda g:g.addV('person').property('name','marko').property('age',29)), (lambda g:g.merge_v({}).option(Merge.on_match,None)), (lambda g:g.V().has('person','name','marko').has('age',29))], 
-    'g_V_mergeVXemptyX_optionXonMatch_nullX': [(lambda g:g.addV('person').property('name','marko').property('age',29)), (lambda g:g.V().merge_v({}).option(Merge.on_match,None)), (lambda g:g.V().has('person','name','marko').has('age',29))], 
-    'g_mergeVXnullX_optionXonCreate_label_null_name_markoX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.merge_v(xx1))], 
-    'g_V_mergeVXnullX_optionXonCreate_label_null_name_markoX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.V().merge_v(xx1))], 
-    'g_mergeVXlabel_person_name_stephenX_optionXonCreate_nullX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.merge_v(xx1).option(Merge.on_create,None)), (lambda g, xx1=None:g.V()), (lambda g, xx1=None:g.V().has('person','name','marko')), (lambda g, xx1=None:g.V().has('person','name','stephen'))], 
-    'g_V_mergeVXlabel_person_name_stephenX_optionXonCreate_nullX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.V().merge_v(xx1).option(Merge.on_create,None)), (lambda g, xx1=None:g.V()), (lambda g, xx1=None:g.V().has('person','name','marko')), (lambda g, xx1=None:g.V().has('person','name','stephen'))], 
-    'g_mergeVXnullX_optionXonCreate_emptyX': [(lambda g:g.addV('person').property('name','marko').property('age',29)), (lambda g:g.merge_v(None).option(Merge.on_create,{})), (lambda g:g.V())], 
-    'g_V_mergeVXnullX_optionXonCreate_emptyX': [(lambda g:g.addV('person').property('name','marko').property('age',29)), (lambda g:g.V().merge_v(None).option(Merge.on_create,{})), (lambda g:g.V())], 
-    'g_mergeVXemptyX_no_existing': [(lambda g:g.merge_v({})), (lambda g:g.V())], 
-    'g_injectX0X_mergeVXemptyX_no_existing': [(lambda g:g.inject(0).merge_v({})), (lambda g:g.V())], 
-    'g_mergeVXemptyX': [(lambda g:g.addV('person').property('name','marko').property('age',29)), (lambda g:g.merge_v({})), (lambda g:g.V().has('person','name','marko').has('age',29))], 
-    'g_V_mergeVXemptyX_two_exist': [(lambda g:g.addV('person').property('name','marko').property('age',29).addV('person').property('name','vadas').property('age',27)), (lambda g:g.V().merge_v({})), (lambda g:g.V()), (lambda g:g.V().has('person','name','marko').has('age',29)), (lambda g:g.V().has('person','name','vadas').has('age',27))], 
-    'g_mergeVXnullX': [(lambda g:g.addV('person').property('name','marko').property('age',29)), (lambda g:g.merge_v(None)), (lambda g:g.V())], 
-    'g_V_mergeVXnullX': [(lambda g:g.addV('person').property('name','marko').property('age',29)), (lambda g:g.V().merge_v(None)), (lambda g:g.V())], 
-    'g_mergeVXlabel_person_name_stephenX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.merge_v(xx1)), (lambda g, xx1=None:g.V().has('person','name','stephen'))], 
-    'g_mergeVXlabel_person_name_markoX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.merge_v(xx1)), (lambda g, xx1=None:g.V().has('person','name','marko'))], 
-    'g_mergeVXlabel_person_name_stephenX_optionXonCreate_label_person_name_stephen_age_19X_option': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create,xx2)), (lambda g, xx1=None,xx2=None:g.V().has('person','name','stephen').has('age',19))], 
-    'g_mergeVXlabel_person_name_markoX_optionXonMatch_age_19X_option': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_match,xx2)), (lambda g, xx1=None,xx2=None:g.V().has('person','name','marko').has('age',19))], 
-    'g_withSideEffectXc_label_person_name_stephenX_withSideEffectXm_label_person_name_stephen_age_19X_mergeVXselectXcXX_optionXonCreate_selectXmXX_option': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.withSideEffect('c',xx1).withSideEffect('m',xx2).merge_v(__.select('c')).option(Merge.on_create,__.select('m'))), (lambda g, xx1=None,xx2=None:g.V().has('person','name','stephen').has('age',19))], 
-    'g_withSideEffectXc_label_person_name_markoX_withSideEffectXm_age_19X_mergeVXselectXcXX_optionXonMatch_selectXmXX_option': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.withSideEffect('c',xx1).withSideEffect('m',xx2).merge_v(__.select('c')).option(Merge.on_match,__.select('m'))), (lambda g, xx1=None,xx2=None:g.V().has('person','name','marko').has('age',19))], 
-    'g_mergeVXlabel_person_name_markoX_propertyXname_vadas_acl_publicX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.merge_v(xx1).property('name','vadas','acl','public')), (lambda g, xx1=None:g.V().properties('name').hasValue('vadas').has('acl','public'))], 
-    'g_injectX0X_mergeVXlabel_person_name_stephenX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.inject(0).merge_v(xx1)), (lambda g, xx1=None:g.V().has('person','name','stephen'))], 
-    'g_injectX0X_mergeVXlabel_person_name_markoX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.inject(0).merge_v(xx1)), (lambda g, xx1=None:g.V().has('person','name','marko'))], 
-    'g_injectX0X_mergeVXlabel_person_name_stephenX_optionXonCreate_label_person_name_stephen_age_19X_option': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.inject(0).merge_v(xx1).option(Merge.on_create,xx2)), (lambda g, xx1=None,xx2=None:g.V().has('person','name','stephen').has('age',19))], 
-    'g_injectX0X_mergeVXlabel_person_name_markoX_optionXonMatch_age_19X_option': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.inject(0).merge_v(xx1).option(Merge.on_match,xx2)), (lambda g, xx1=None,xx2=None:g.V().has('person','name','marko').has('age',19))], 
-    'g_withSideEffectXc_label_person_name_stephenX_withSideEffectXm_label_person_name_stephen_age_19X_injectX0X_mergeVXselectXcXX_optionXonCreate_selectXmXX_option': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.withSideEffect('c',xx1).withSideEffect('m',xx2).inject(0).merge_v(__.select('c')).option(Merge.on_create,__.select('m'))), (lambda g, xx1=None,xx2=None:g.V().has('person','name','stephen').has('age',19))], 
-    'g_withSideEffectXc_label_person_name_markoX_withSideEffectXm_age_19X_injectX0X_mergeVXselectXcXX_optionXonMatch_selectXmXX_option': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.withSideEffect('c',xx1).withSideEffect('m',xx2).inject(0).merge_v(__.select('c')).option(Merge.on_match,__.select('m'))), (lambda g, xx1=None,xx2=None:g.V().has('person','name','marko').has('age',19))], 
-    'g_injectX0X_mergeVXlabel_person_name_markoX_propertyXname_vadas_acl_publicX': [(lambda g, xx1=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None:g.inject(0).merge_v(xx1).property('name','vadas','acl','public')), (lambda g, xx1=None:g.V().properties('name').hasValue('vadas').has('acl','public'))], 
-    'g_injectXlabel_person_name_marko_label_person_name_stephenX_mergeVXidentityX': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.inject(xx1,xx2).merge_v(__.identity())), (lambda g, xx1=None,xx2=None:g.V().has('person','name','stephen')), (lambda g, xx1=None,xx2=None:g.V().has('person','name','marko')), (lambda g, xx1=None,xx2=None:g.V())], 
-    'g_injectXlabel_person_name_marko_label_person_name_stephenX_mergeV': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property('age',29)), (lambda g, xx1=None,xx2=None:g.inject(xx1,xx2).merge_v()), (lambda g, xx1=None,xx2=None:g.V().has('person','name','stephen')), (lambda g, xx1=None,xx2=None:g.V().has('person','name','marko')), (lambda g, xx1=None,xx2=None:g.V())], 
-    'g_mergeVXlabel_person_name_stephenX_propertyXlist_name_steveX': [(lambda g, xx1=None:g.addV('person').property(Cardinality.list_,'name','stephen')), (lambda g, xx1=None:g.merge_v(xx1).property(Cardinality.list_,'name','steve')), (lambda g, xx1=None:g.V()), (lambda g, xx1=None:g.V().properties('name').hasValue('steve')), (lambda g, xx1=None:g.V().properties('name').hasValue('stephen')), (lambda g, xx1=None:g.V().properties('name'))], 
-    'g_mergeXlabel_person_name_vadasX_optionXonMatch_age_35X': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','vadas').property('age',29).addV('person').property('name','vadas').property('age',27)), (lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_match,xx2)), (lambda g, xx1=None,xx2=None:g.V().has('age',35)), (lambda g, xx1=None,xx2=None:g.V())], 
-    'g_V_mapXmergeXlabel_person_name_joshXX': [(lambda g, xx1=None:g.addV('person').property('name','vadas').property('age',29).addV('person').property('name','stephen').property('age',27)), (lambda g, xx1=None:g.V().map(__.merge_v(xx1))), (lambda g, xx1=None:g.V().has('person','name','josh')), (lambda g, xx1=None:g.V())], 
-    'g_withSideEffectXc_label_person_name_markoX_withSideEffectXm_age_19X_mergeVXselectXcXX_optionXonMatch_sideEffectXpropertiesXageX_dropX_selectXmXX_option': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','marko').property(Cardinality.list_,'age',29).property(Cardinality.list_,'age',31).property(Cardinality.list_,'age',32)), (lambda g, xx1=None,xx2=None:g.withSideEffect('c',xx1).withSideEffect('m',xx2).merge_v(__.select('c')).option(Merge.on_match,__.sideEffect(__.prope [...]
-    'g_withSideEffectXm_age_19X_V_hasXperson_name_markoX_mergeVXselectXcXX_optionXonMatch_sideEffectXpropertiesXageX_dropX_selectXmXX_option': [(lambda g, xx1=None:g.addV('person').property('name','marko').property(Cardinality.list_,'age',29).property(Cardinality.list_,'age',31).property(Cardinality.list_,'age',32)), (lambda g, xx1=None:g.withSideEffect('m',xx1).V().has('person','name','marko').merge_v({}).option(Merge.on_match,__.sideEffect(__.properties('age').drop()).select('m'))), (l [...]
-    'g_mergeV_onCreate_inheritance_existing': [(lambda g, xx1=None,xx2=None:g.addV('person').property('name','mike').property(T.id_,'1')), (lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create,xx2)), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.V('1').has('person','name','mike'))], 
-    'g_mergeV_onCreate_inheritance_new_1': [(lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create,xx2)), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.V('1').has('person','name','mike'))], 
-    'g_mergeV_onCreate_inheritance_new_2': [(lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create,xx2)), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.V('1').has('person','name','mike'))], 
-    'g_mergeV_label_override_prohibited': [(lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create,xx2))], 
-    'g_mergeV_id_override_prohibited': [(lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create,xx2))], 
+    'g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX': [(lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2).option(Merge.on_match, xx3))], 
+    'g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b').add_e('knows').from_('a').to('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2).option(Merge.on_match, xx3)), (lambda g, xx1=None,xx3=None,xx2=None:g.V()), (lambda g, xx1=None,xx3=None,xx2=None:g.E().has [...]
+    'g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b').add_e('knows').from_('a').to('b').property('created', 'Y')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2).option(Merge.on_match, xx3)), (lambda g, xx1=None,xx3=None,xx2=None:g.V()), (lambda g, xx1 [...]
+    'g_V_hasXperson_name_marko_X_mergeEXlabel_knowsX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b').add_e('knows').from_('a').to('b').property('created', 'Y').add_e('knows').from_('a').to('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.V().has('person', 'name', 'marko').merge_e(xx1).option(Merge.on_create, xx2).option(Merge.o [...]
+    'g_injectXlabel_knows_out_marko_in_vadasX_mergeE': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None:g.inject(xx1).merge_e()), (lambda g, xx1=None:g.V().has('person', 'name', 'marko').out('knows').has('person', 'name', 'vadas'))], 
+    'g_mergeEXlabel_knows_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b').add_e('knows').from_('a').to('b').property('created', 'Y').add_e('knows').from_('b').to('a').property('created', 'Y')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2).option(Merge.on_match, xx3)), (lambda g,  [...]
+    'g_mergeEXlabel_knows_out_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b').add_e('knows').from_('a').to('b').property('created', 'Y').add_e('knows').from_('b').to('a').property('created', 'Y')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2).option(Merge.on_match, xx3)), (lambda g, [...]
+    'g_mergeEXout_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b').add_e('knows').from_('a').to('b').property('created', 'Y').add_e('knows').from_('b').to('a').property('created', 'Y')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2).option(Merge.on_match, xx3)), (lambda g, xx1=None,xx [...]
+    'g_V_hasXperson_name_marko_X_mergeEXlabel_self_out_vadas1_in_vadas1X': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None:g.V().has('person', 'name', 'marko').merge_e(xx1)), (lambda g, xx1=None:g.V()), (lambda g, xx1=None:g.E()), (lambda g, xx1=None:g.E().has_label('self').both_v().has('name', 'vadas'))], 
+    'g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_selectXcXX_optionXonMatch_selectXmXX_exists': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b').add_e('knows').from_('a').to('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.with_side_effect('c', xx2).with_side_effect('m', xx3).merge_e(xx1).option(Merge.on_create, __.select('c')).opti [...]
+    'g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_selectXcXX_optionXonMatch_selectXmXX': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.with_side_effect('c', xx2).with_side_effect('m', xx3).merge_e(xx1).option(Merge.on_create, __.select('c')).option(Merge.on_match, __.select('m'))), (lam [...]
+    'g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko1_in_vadas1X_optionXonCreate_selectXcXX_optionXonMatch_selectXmXX': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.with_side_effect('c', xx2).with_side_effect('m', xx3).merge_e(xx1).option(Merge.on_create, __.select('c')).option(Merge.on_match, __.select('m'))), (l [...]
+    'g_mergeEXlabel_knows_out_marko_in_vadasX_aliased_direction': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None:g.merge_e(xx1)), (lambda g, xx1=None:g.V().has('person', 'name', 'marko').out('knows').has('person', 'name', 'vadas'))], 
+    'g_injectXlabel_knows_out_marko_in_vadas_label_self_out_vadas_in_vadasX': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None,xx2=None:g.inject(xx1, xx2).merge_e()), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.E()), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'marko').out('knows').has('person', 'name', 'vadas')), (lambda g, xx1=None,xx2=None:g.V().has('person', ' [...]
+    'g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_selectXcXX_optionXonMatch_sideEffectXpropertiesXweightX_dropX_selectXmXX_exists': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').as_('a').add_v('person').property('name', 'vadas').as_('b').add_e('knows').property('weight', 1).from_('a').to('b')), (lambda g, xx1=None,xx3=None,xx2=None:g.with_side_effect('c', xx2).with_side_effect('m', xx3) [...]
+    'g_mergeE_with_outVinV_options_map': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_e(xx1).option(Merge.out_v, xx2).option(Merge.in_v, xx3)), (lambda g, xx1=None,xx3=None,xx2=None:g.V()), (lambda g, xx1=None,xx3=None,xx2=None:g.V().has('name', 'marko').out('knows').has('name', 'vadas'))], 
+    'g_mergeE_with_outVinV_options_select': [(lambda g, xx1=None,vid2=None,vid1=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None,vid2=None,vid1=None:g.V(vid1).as_('x').V(vid2).as_('y').merge_e(xx1).option(Merge.out_v, __.select('x')).option(Merge.in_v, __.select('y'))), (lambda g, xx1=None,vid2=None,vid1=None:g.V()), (lambda g, xx1=None,vid2=None,vid1=None:g.V().has('name', 'marko').out('knows').has('name', 'vadas'))], 
+    'g_mergeE_with_eid_specified_and_inheritance_1': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2)), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.E()), (lambda g, xx1=None,xx2=None:g.E('201')), (lambda g, xx1=None,xx2=None:g.V().has('name', 'marko').out('knows').has('name', 'vadas'))], 
+    'g_mergeE_with_eid_specified_and_inheritance_2': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2)), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.E()), (lambda g, xx1=None,xx2=None:g.E('201')), (lambda g, xx1=None,xx2=None:g.V().has('name', 'marko').out('knows').has('name', 'vadas'))], 
+    'g_mergeE_outV_override_prohibited': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2))], 
+    'g_mergeE_inV_override_prohibited': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2))], 
+    'g_mergeE_label_override_prohibited': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2))], 
+    'g_mergeE_id_override_prohibited': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None,xx2=None:g.merge_e(xx1).option(Merge.on_create, xx2))], 
+    'g_mergeV_mergeE_combination_new_vertices': [(lambda g, xx1=None,xx3=None,xx2=None:g.merge_v(xx1).as_('outV').merge_v(xx2).as_('inV').merge_e(xx3).option(Merge.out_v, __.select('outV')).option(Merge.in_v, __.select('inV'))), (lambda g, xx1=None,xx3=None,xx2=None:g.V()), (lambda g, xx1=None,xx3=None,xx2=None:g.E()), (lambda g, xx1=None,xx3=None,xx2=None:g.V().has('name', 'marko').out('knows').has('name', 'vadas'))], 
+    'g_mergeV_mergeE_combination_existing_vertices': [(lambda g, xx1=None,xx3=None,xx2=None:g.add_v('person').property('name', 'marko').add_v('person').property('name', 'vadas')), (lambda g, xx1=None,xx3=None,xx2=None:g.merge_v(xx1).as_('outV').merge_v(xx2).as_('inV').merge_e(xx3).option(Merge.out_v, __.select('outV')).option(Merge.in_v, __.select('inV'))), (lambda g, xx1=None,xx3=None,xx2=None:g.V()), (lambda g, xx1=None,xx3=None,xx2=None:g.E()), (lambda g, xx1=None,xx3=None,xx2=None:g. [...]
+    'g_V_asXvX_mergeEXxx1X_optionXMerge_onMatch_xx2X_optionXMerge_outV_selectXvXX_optionXMerge_inV_selectXvXX': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.V().as_('v').merge_e(xx1).option(Merge.on_match, xx2).option(Merge.out_v, __.select('v')).option(Merge.in_v, __.select('v')))], 
+    'g_mergeVXemptyX_optionXonMatch_nullX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g:g.merge_v({  }).option(Merge.on_match, None)), (lambda g:g.V().has('person', 'name', 'marko').has('age', 29))], 
+    'g_V_mergeVXemptyX_optionXonMatch_nullX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g:g.V().merge_v({  }).option(Merge.on_match, None)), (lambda g:g.V().has('person', 'name', 'marko').has('age', 29))], 
+    'g_mergeVXnullX_optionXonCreate_label_null_name_markoX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.merge_v(xx1))], 
+    'g_V_mergeVXnullX_optionXonCreate_label_null_name_markoX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.V().merge_v(xx1))], 
+    'g_mergeVXlabel_person_name_stephenX_optionXonCreate_nullX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.merge_v(xx1).option(Merge.on_create, None)), (lambda g, xx1=None:g.V()), (lambda g, xx1=None:g.V().has('person', 'name', 'marko')), (lambda g, xx1=None:g.V().has('person', 'name', 'stephen'))], 
+    'g_V_mergeVXlabel_person_name_stephenX_optionXonCreate_nullX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.V().merge_v(xx1).option(Merge.on_create, None)), (lambda g, xx1=None:g.V()), (lambda g, xx1=None:g.V().has('person', 'name', 'marko')), (lambda g, xx1=None:g.V().has('person', 'name', 'stephen'))], 
+    'g_mergeVXnullX_optionXonCreate_emptyX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g:g.merge_v(None).option(Merge.on_create, {  })), (lambda g:g.V())], 
+    'g_V_mergeVXnullX_optionXonCreate_emptyX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g:g.V().merge_v(None).option(Merge.on_create, {  })), (lambda g:g.V())], 
+    'g_mergeVXemptyX_no_existing': [(lambda g:g.merge_v({  })), (lambda g:g.V())], 
+    'g_injectX0X_mergeVXemptyX_no_existing': [(lambda g:g.inject(0).merge_v({  })), (lambda g:g.V())], 
+    'g_mergeVXemptyX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g:g.merge_v({  })), (lambda g:g.V().has('person', 'name', 'marko').has('age', 29))], 
+    'g_V_mergeVXemptyX_two_exist': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29).add_v('person').property('name', 'vadas').property('age', 27)), (lambda g:g.V().merge_v({  })), (lambda g:g.V()), (lambda g:g.V().has('person', 'name', 'marko').has('age', 29)), (lambda g:g.V().has('person', 'name', 'vadas').has('age', 27))], 
+    'g_mergeVXnullX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g:g.merge_v(None)), (lambda g:g.V())], 
+    'g_V_mergeVXnullX': [(lambda g:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g:g.V().merge_v(None)), (lambda g:g.V())], 
+    'g_mergeVXlabel_person_name_stephenX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.merge_v(xx1)), (lambda g, xx1=None:g.V().has('person', 'name', 'stephen'))], 
+    'g_mergeVXlabel_person_name_markoX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.merge_v(xx1)), (lambda g, xx1=None:g.V().has('person', 'name', 'marko'))], 
+    'g_mergeVXlabel_person_name_stephenX_optionXonCreate_label_person_name_stephen_age_19X_option': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create, xx2)), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'stephen').has('age', 19))], 
+    'g_mergeVXlabel_person_name_markoX_optionXonMatch_age_19X_option': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_match, xx2)), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'marko').has('age', 19))], 
+    'g_withSideEffectXc_label_person_name_stephenX_withSideEffectXm_label_person_name_stephen_age_19X_mergeVXselectXcXX_optionXonCreate_selectXmXX_option': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.with_side_effect('c', xx1).with_side_effect('m', xx2).merge_v(__.select('c')).option(Merge.on_create, __.select('m'))), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'stephen').has('age', 19))], 
+    'g_withSideEffectXc_label_person_name_markoX_withSideEffectXm_age_19X_mergeVXselectXcXX_optionXonMatch_selectXmXX_option': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.with_side_effect('c', xx1).with_side_effect('m', xx2).merge_v(__.select('c')).option(Merge.on_match, __.select('m'))), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'marko').has('age', 19))], 
+    'g_mergeVXlabel_person_name_markoX_propertyXname_vadas_acl_publicX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.merge_v(xx1).property('name', 'vadas', 'acl', 'public')), (lambda g, xx1=None:g.V().properties('name').has_value('vadas').has('acl', 'public'))], 
+    'g_injectX0X_mergeVXlabel_person_name_stephenX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.inject(0).merge_v(xx1)), (lambda g, xx1=None:g.V().has('person', 'name', 'stephen'))], 
+    'g_injectX0X_mergeVXlabel_person_name_markoX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.inject(0).merge_v(xx1)), (lambda g, xx1=None:g.V().has('person', 'name', 'marko'))], 
+    'g_injectX0X_mergeVXlabel_person_name_stephenX_optionXonCreate_label_person_name_stephen_age_19X_option': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.inject(0).merge_v(xx1).option(Merge.on_create, xx2)), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'stephen').has('age', 19))], 
+    'g_injectX0X_mergeVXlabel_person_name_markoX_optionXonMatch_age_19X_option': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.inject(0).merge_v(xx1).option(Merge.on_match, xx2)), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'marko').has('age', 19))], 
+    'g_withSideEffectXc_label_person_name_stephenX_withSideEffectXm_label_person_name_stephen_age_19X_injectX0X_mergeVXselectXcXX_optionXonCreate_selectXmXX_option': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.with_side_effect('c', xx1).with_side_effect('m', xx2).inject(0).merge_v(__.select('c')).option(Merge.on_create, __.select('m'))), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'stephen').h [...]
+    'g_withSideEffectXc_label_person_name_markoX_withSideEffectXm_age_19X_injectX0X_mergeVXselectXcXX_optionXonMatch_selectXmXX_option': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.with_side_effect('c', xx1).with_side_effect('m', xx2).inject(0).merge_v(__.select('c')).option(Merge.on_match, __.select('m'))), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'marko').has('age', 19))], 
+    'g_injectX0X_mergeVXlabel_person_name_markoX_propertyXname_vadas_acl_publicX': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None:g.inject(0).merge_v(xx1).property('name', 'vadas', 'acl', 'public')), (lambda g, xx1=None:g.V().properties('name').has_value('vadas').has('acl', 'public'))], 
+    'g_injectXlabel_person_name_marko_label_person_name_stephenX_mergeVXidentityX': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.inject(xx1, xx2).merge_v(__.identity())), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'stephen')), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'marko')), (lambda g, xx1=None,xx2=None:g.V())], 
+    'g_injectXlabel_person_name_marko_label_person_name_stephenX_mergeV': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property('age', 29)), (lambda g, xx1=None,xx2=None:g.inject(xx1, xx2).merge_v()), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'stephen')), (lambda g, xx1=None,xx2=None:g.V().has('person', 'name', 'marko')), (lambda g, xx1=None,xx2=None:g.V())], 
+    'g_mergeVXlabel_person_name_stephenX_propertyXlist_name_steveX': [(lambda g, xx1=None:g.add_v('person').property(Cardinality.list_, 'name', 'stephen')), (lambda g, xx1=None:g.merge_v(xx1).property(Cardinality.list_, 'name', 'steve')), (lambda g, xx1=None:g.V()), (lambda g, xx1=None:g.V().properties('name').has_value('steve')), (lambda g, xx1=None:g.V().properties('name').has_value('stephen')), (lambda g, xx1=None:g.V().properties('name'))], 
+    'g_mergeXlabel_person_name_vadasX_optionXonMatch_age_35X': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'vadas').property('age', 29).add_v('person').property('name', 'vadas').property('age', 27)), (lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_match, xx2)), (lambda g, xx1=None,xx2=None:g.V().has('age', 35)), (lambda g, xx1=None,xx2=None:g.V())], 
+    'g_V_mapXmergeXlabel_person_name_joshXX': [(lambda g, xx1=None:g.add_v('person').property('name', 'vadas').property('age', 29).add_v('person').property('name', 'stephen').property('age', 27)), (lambda g, xx1=None:g.V().map(__.merge_v(xx1))), (lambda g, xx1=None:g.V().has('person', 'name', 'josh')), (lambda g, xx1=None:g.V())], 
+    'g_withSideEffectXc_label_person_name_markoX_withSideEffectXm_age_19X_mergeVXselectXcXX_optionXonMatch_sideEffectXpropertiesXageX_dropX_selectXmXX_option': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'marko').property(Cardinality.list_, 'age', 29).property(Cardinality.list_, 'age', 31).property(Cardinality.list_, 'age', 32)), (lambda g, xx1=None,xx2=None:g.with_side_effect('c', xx1).with_side_effect('m', xx2).merge_v(__.select('c')).option(Merge.on_match, __.side [...]
+    'g_withSideEffectXm_age_19X_V_hasXperson_name_markoX_mergeVXselectXcXX_optionXonMatch_sideEffectXpropertiesXageX_dropX_selectXmXX_option': [(lambda g, xx1=None:g.add_v('person').property('name', 'marko').property(Cardinality.list_, 'age', 29).property(Cardinality.list_, 'age', 31).property(Cardinality.list_, 'age', 32)), (lambda g, xx1=None:g.with_side_effect('m', xx1).V().has('person', 'name', 'marko').merge_v({  }).option(Merge.on_match, __.side_effect(__.properties('age').drop()). [...]
+    'g_mergeV_onCreate_inheritance_existing': [(lambda g, xx1=None,xx2=None:g.add_v('person').property('name', 'mike').property(T.id_, '1')), (lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create, xx2)), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.V('1').has('person', 'name', 'mike'))], 
+    'g_mergeV_onCreate_inheritance_new_1': [(lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create, xx2)), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.V('1').has('person', 'name', 'mike'))], 
+    'g_mergeV_onCreate_inheritance_new_2': [(lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create, xx2)), (lambda g, xx1=None,xx2=None:g.V()), (lambda g, xx1=None,xx2=None:g.V('1').has('person', 'name', 'mike'))], 
+    'g_mergeV_label_override_prohibited': [(lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create, xx2))], 
+    'g_mergeV_id_override_prohibited': [(lambda g, xx1=None,xx2=None:g.merge_v(xx1).option(Merge.on_create, xx2))], 
     'g_mergeV_hidden_id_key_prohibited': [(lambda g, xx1=None:g.merge_v(xx1))], 
     'g_mergeV_hidden_label_key_prohibited': [(lambda g, xx1=None:g.merge_v(xx1))], 
     'g_mergeV_hidden_label_value_prohibited': [(lambda g, xx1=None:g.merge_v(xx1))], 
-    'g_mergeV_hidden_id_key_onCreate_prohibited': [(lambda g, xx1=None:g.merge_v({}).option(Merge.on_create,xx1))], 
-    'g_mergeV_hidden_label_key_onCreate_prohibited': [(lambda g, xx1=None:g.merge_v({}).option(Merge.on_create,xx1))], 
-    'g_mergeV_hidden_label_value_onCreate_prohibited': [(lambda g, xx1=None:g.merge_v({}).option(Merge.on_create,xx1))], 
-    'g_mergeV_hidden_id_key_onMatch_matched_prohibited': [(lambda g, xx1=None:g.addV('vertex')), (lambda g, xx1=None:g.merge_v({}).option(Merge.on_match,xx1))], 
-    'g_mergeV_hidden_label_key_matched_onMatch_matched_prohibited': [(lambda g, xx1=None:g.addV('vertex')), (lambda g, xx1=None:g.merge_v({}).option(Merge.on_match,xx1))], 
-    'g_mergeVXname_markoX_optionXonMatch_age_listX33XX': [(lambda g:g.addV('person').property('name','marko').property(Cardinality.list_,'age',29).property(Cardinality.list_,'age',31).property(Cardinality.list_,'age',32)), (lambda g:g.merge_v({'name':'marko'}).option(Merge.on_match,{'age':CardinalityValue.list_(33)})), (lambda g:g.V().has('person','name','marko').has('age',33)), (lambda g:g.V().has('person','name','marko').has('age')), (lambda g:g.V().has('person','name','marko').propert [...]
-    'g_mergeVXname_markoX_optionXonMatch_age_setX33XX': [(lambda g:g.addV('person').property('name','marko').property(Cardinality.list_,'age',29).property(Cardinality.list_,'age',31).property(Cardinality.list_,'age',32)), (lambda g:g.merge_v({'name':'marko'}).option(Merge.on_match,{'age':CardinalityValue.set_(33)})), (lambda g:g.V().has('person','name','marko').has('age',33)), (lambda g:g.V().has('person','name','marko').has('age')), (lambda g:g.V().has('person','name','marko').propertie [...]
-    'g_mergeVXname_markoX_optionXonMatch_age_setX31XX': [(lambda g:g.addV('person').property('name','marko').property(Cardinality.list_,'age',29).property(Cardinality.list_,'age',31).property(Cardinality.list_,'age',32)), (lambda g:g.merge_v({'name':'marko'}).option(Merge.on_match,{'age':CardinalityValue.set_(31)})), (lambda g:g.V().has('person','name','marko').has('age',31)), (lambda g:g.V().has('person','name','marko').has('age')), (lambda g:g.V().has('person','name','marko').propertie [...]
-    'g_mergeVXname_markoX_optionXonMatch_age_singleX33XX': [(lambda g:g.addV('person').property('name','marko').property(Cardinality.list_,'age',29).property(Cardinality.list_,'age',31).property(Cardinality.list_,'age',32)), (lambda g:g.merge_v({'name':'marko'}).option(Merge.on_match,{'age':CardinalityValue.single(33)})), (lambda g:g.V().has('person','name','marko').has('age',33)), (lambda g:g.V().has('person','name','marko').has('age')), (lambda g:g.V().has('person','name','marko').prop [...]
-    'g_mergeVXname_markoX_optionXonMatch_age_33_singleX': [(lambda g:g.addV('person').property('name','marko').property(Cardinality.list_,'age',29).property(Cardinality.list_,'age',31).property(Cardinality.list_,'age',32)), (lambda g:g.merge_v({'name':'marko'}).option(Merge.on_match,{'age':33},Cardinality.single)), (lambda g:g.V().has('person','name','marko').has('age',33)), (lambda g:g.V().has('person','name','marko').has('age')), (lambda g:g.V().has('person','name','marko').properties( [...]
-    'g_mergeVXname_markoX_optionXonMatch_name_allen_age_setX31X_singleX': [(lambda g:g.addV('person').property('name','marko').property(Cardinality.list_,'age',29).property(Cardinality.list_,'age',31).property(Cardinality.list_,'age',32)), (lambda g:g.merge_v({'name':'marko'}).option(Merge.on_match,{'name':'allen','age':CardinalityValue.set_(31)},Cardinality.single)), (lambda g:g.V().has('person','name','marko')), (lambda g:g.V().has('person','name','allen').has('age',31)), (lambda g:g.V [...]
-    'g_mergeVXname_markoX_optionXonMatch_name_allen_age_singleX31X_singleX': [(lambda g:g.addV('person').property('name','marko').property(Cardinality.list_,'age',29).property(Cardinality.list_,'age',31).property(Cardinality.list_,'age',32)), (lambda g:g.merge_v({'name':'marko'}).option(Merge.on_match,{'name':'allen','age':CardinalityValue.single(31)},Cardinality.single)), (lambda g:g.V().has('person','name','marko')), (lambda g:g.V().has('person','name','allen').has('age',33)), (lambda  [...]
-    'g_mergeV_hidden_label_key_onMatch_matched_prohibited': [(lambda g, xx1=None:g.merge_v({}).option(Merge.on_match,xx1))], 
-    'g_V_age_min': [(lambda g:g.V().age.min_())], 
-    'g_V_foo_min': [(lambda g:g.V().foo.min_())], 
-    'g_V_name_min': [(lambda g:g.V().name.min_())], 
-    'g_V_age_fold_minXlocalX': [(lambda g:g.V().age.fold().min_(Scope.local))], 
+    'g_mergeV_hidden_id_key_onCreate_prohibited': [(lambda g, xx1=None:g.merge_v({  }).option(Merge.on_create, xx1))], 
+    'g_mergeV_hidden_label_key_onCreate_prohibited': [(lambda g, xx1=None:g.merge_v({  }).option(Merge.on_create, xx1))], 
+    'g_mergeV_hidden_label_value_onCreate_prohibited': [(lambda g, xx1=None:g.merge_v({  }).option(Merge.on_create, xx1))], 
+    'g_mergeV_hidden_id_key_onMatch_matched_prohibited': [(lambda g, xx1=None:g.add_v('vertex')), (lambda g, xx1=None:g.merge_v({  }).option(Merge.on_match, xx1))], 
+    'g_mergeV_hidden_label_key_matched_onMatch_matched_prohibited': [(lambda g, xx1=None:g.add_v('vertex')), (lambda g, xx1=None:g.merge_v({  }).option(Merge.on_match, xx1))], 
+    'g_mergeVXname_markoX_optionXonMatch_age_listX33XX': [(lambda g:g.add_v('person').property('name', 'marko').property(Cardinality.list_, 'age', 29).property(Cardinality.list_, 'age', 31).property(Cardinality.list_, 'age', 32)), (lambda g:g.merge_v({ 'name': 'marko' }).option(Merge.on_match, { 'age': CardinalityValue.list_(33) })), (lambda g:g.V().has('person', 'name', 'marko').has('age', 33)), (lambda g:g.V().has('person', 'name', 'marko').has('age')), (lambda g:g.V().has('person', 'n [...]
+    'g_mergeVXname_markoX_optionXonMatch_age_setX33XX': [(lambda g:g.add_v('person').property('name', 'marko').property(Cardinality.list_, 'age', 29).property(Cardinality.list_, 'age', 31).property(Cardinality.list_, 'age', 32)), (lambda g:g.merge_v({ 'name': 'marko' }).option(Merge.on_match, { 'age': CardinalityValue.set_(33) })), (lambda g:g.V().has('person', 'name', 'marko').has('age', 33)), (lambda g:g.V().has('person', 'name', 'marko').has('age')), (lambda g:g.V().has('person', 'nam [...]
+    'g_mergeVXname_markoX_optionXonMatch_age_setX31XX': [(lambda g:g.add_v('person').property('name', 'marko').property(Cardinality.list_, 'age', 29).property(Cardinality.list_, 'age', 31).property(Cardinality.list_, 'age', 32)), (lambda g:g.merge_v({ 'name': 'marko' }).option(Merge.on_match, { 'age': CardinalityValue.set_(31) })), (lambda g:g.V().has('person', 'name', 'marko').has('age', 31)), (lambda g:g.V().has('person', 'name', 'marko').has('age')), (lambda g:g.V().has('person', 'nam [...]
+    'g_mergeVXname_markoX_optionXonMatch_age_singleX33XX': [(lambda g:g.add_v('person').property('name', 'marko').property(Cardinality.list_, 'age', 29).property(Cardinality.list_, 'age', 31).property(Cardinality.list_, 'age', 32)), (lambda g:g.merge_v({ 'name': 'marko' }).option(Merge.on_match, { 'age': CardinalityValue.single(33) })), (lambda g:g.V().has('person', 'name', 'marko').has('age', 33)), (lambda g:g.V().has('person', 'name', 'marko').has('age')), (lambda g:g.V().has('person', [...]
+    'g_mergeVXname_markoX_optionXonMatch_age_33_singleX': [(lambda g:g.add_v('person').property('name', 'marko').property(Cardinality.list_, 'age', 29).property(Cardinality.list_, 'age', 31).property(Cardinality.list_, 'age', 32)), (lambda g:g.merge_v({ 'name': 'marko' }).option(Merge.on_match, { 'age': 33 }, Cardinality.single)), (lambda g:g.V().has('person', 'name', 'marko').has('age', 33)), (lambda g:g.V().has('person', 'name', 'marko').has('age')), (lambda g:g.V().has('person', 'name [...]
+    'g_mergeVXname_markoX_optionXonMatch_name_allen_age_setX31X_singleX': [(lambda g:g.add_v('person').property('name', 'marko').property(Cardinality.list_, 'age', 29).property(Cardinality.list_, 'age', 31).property(Cardinality.list_, 'age', 32)), (lambda g:g.merge_v({ 'name': 'marko' }).option(Merge.on_match, { 'name': 'allen', 'age': CardinalityValue.set_(31) }, Cardinality.single)), (lambda g:g.V().has('person', 'name', 'marko')), (lambda g:g.V().has('person', 'name', 'allen').has('ag [...]
+    'g_mergeVXname_markoX_optionXonMatch_name_allen_age_singleX31X_singleX': [(lambda g:g.add_v('person').property('name', 'marko').property(Cardinality.list_, 'age', 29).property(Cardinality.list_, 'age', 31).property(Cardinality.list_, 'age', 32)), (lambda g:g.merge_v({ 'name': 'marko' }).option(Merge.on_match, { 'name': 'allen', 'age': CardinalityValue.single(31) }, Cardinality.single)), (lambda g:g.V().has('person', 'name', 'marko')), (lambda g:g.V().has('person', 'name', 'allen').ha [...]
+    'g_mergeV_hidden_label_key_onMatch_matched_prohibited': [(lambda g, xx1=None:g.merge_v({  }).option(Merge.on_match, xx1))], 
+    'g_V_age_min': [(lambda g:g.V().values('age').min_())], 
+    'g_V_foo_min': [(lambda g:g.V().values('foo').min_())], 
+    'g_V_name_min': [(lambda g:g.V().values('name').min_())], 
+    'g_V_age_fold_minXlocalX': [(lambda g:g.V().values('age').fold().min_(Scope.local))], 
     'g_V_aggregateXaX_byXageX_capXaX_minXlocalX': [(lambda g:g.V().aggregate('a').by('age').cap('a').min_(Scope.local))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_minXlocalX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('age').cap('a').min_(Scope.local))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_minXlocalX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('age').cap('a').min_(Scope.local))], 
     'g_V_aggregateXaX_byXageX_capXaX_unfold_min': [(lambda g:g.V().aggregate('a').by('age').cap('a').unfold().min_())], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_min': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('age').cap('a').unfold().min_())], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_min': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('age').cap('a').unfold().min_())], 
     'g_V_aggregateXaX_byXfooX_capXaX_minXlocalX': [(lambda g:g.V().aggregate('a').by('foo').cap('a').min_(Scope.local))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_minXlocalX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('foo').cap('a').min_(Scope.local))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_minXlocalX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('foo').cap('a').min_(Scope.local))], 
     'g_V_aggregateXaX_byXfooX_capXaX_unfold_min': [(lambda g:g.V().aggregate('a').by('foo').cap('a').unfold().min_())], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_min': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('foo').cap('a').unfold().min_())], 
-    'g_V_foo_fold_minXlocalX': [(lambda g:g.V().foo.fold().min_(Scope.local))], 
-    'g_V_name_fold_minXlocalX': [(lambda g:g.V().name.fold().min_(Scope.local))], 
-    'g_V_repeatXbothX_timesX5X_age_min': [(lambda g:g.V().repeat(__.both()).times(5).age.min_())], 
-    'g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_minX': [(lambda g:g.V().hasLabel('software').group().by('name').by(__.bothE().weight.min_()))], 
-    'g_V_foo_injectX9999999999X_min': [(lambda g, xx1=None:g.V().foo.inject(xx1).min_())], 
-    'g_VX1X_valuesXageX_minXlocalX': [(lambda g, vid1=None:g.V(vid1).age.min_(Scope.local))], 
-    'g_V_name_order': [(lambda g:g.V().name.order())], 
-    'g_V_name_order_byXa1_b1X_byXb2_a2X': [(lambda g, c1=None,c2=None:g.V().name.order().by(c1).by(c2))], 
-    'g_V_order_byXname_ascX_name': [(lambda g:g.V().order().by('name',Order.asc).name)], 
-    'g_V_order_byXnameX_name': [(lambda g:g.V().order().by('name').name)], 
-    'g_V_outE_order_byXweight_descX_weight': [(lambda g:g.V().outE().order().by('weight',Order.desc).weight)], 
-    'g_V_order_byXname_a1_b1X_byXname_b2_a2X_name': [(lambda g, c1=None,c2=None:g.V().order().by('name',c1).by('name',c2).name)], 
-    'g_V_asXaX_outXcreatedX_asXbX_order_byXshuffleX_selectXa_bX': [(lambda g:g.V().as_('a').out('created').as_('b').order().by(Order.shuffle).select('a','b'))], 
-    'g_V_both_hasLabelXpersonX_order_byXage_descX_limitX5X_name': [(lambda g:g.V().both().hasLabel('person').order().by('age',Order.desc)[0:5].name)], 
-    'g_V_properties_order_byXkey_descX_key': [(lambda g:g.V().properties().order().by(T.key,Order.desc).key())], 
-    'g_V_hasLabelXpersonX_order_byXvalueXageX_descX_name': [(lambda g, l1=None:g.V().hasLabel('person').order().by(l1,Order.desc).name)], 
-    'g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_orderXlocalX_byXvaluesX': [(lambda g:g.V().hasLabel('person').group().by('name').by(__.outE().weight.sum_()).order(Scope.local).by(Column.values))], 
-    'g_V_mapXbothE_weight_foldX_order_byXsumXlocalX_descX_byXcountXlocalX_descX': [(lambda g:g.V().map(__.bothE().weight.order().by(Order.asc).fold()).order().by(__.sum_(Scope.local),Order.desc).by(__.count(Scope.local),Order.desc))], 
-    'g_V_group_byXlabelX_byXname_order_byXdescX_foldX': [(lambda g:g.V().group().by(T.label).by(__.name.order().by(Order.desc).fold()))], 
-    'g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_descX': [(lambda g:g.V().hasLabel('person').group().by('name').by(__.outE().weight.sum_()).unfold().order().by(Column.values,Order.desc))], 
-    'g_V_asXvX_mapXbothE_weight_foldX_sumXlocalX_asXsX_selectXv_sX_order_byXselectXsX_descX_byXselectXvX_nameX': [(lambda g:g.V().as_('v').map(__.bothE().weight.fold()).sum_(Scope.local).as_('s').select('v','s').order().by(__.select('s'),Order.desc).by(__.select('v').name))], 
-    'g_V_hasLabelXpersonX_fold_orderXlocalX_byXageX': [(lambda g:g.V().hasLabel('person').fold().order(Scope.local).by('age'))], 
-    'g_V_both_hasLabelXpersonX_order_byXage_descX_name': [(lambda g:g.V().both().hasLabel('person').order().by('age',Order.desc).name)], 
-    'g_V_order_byXoutE_count_descX_byXnameX': [(lambda g:g.V().order().by(__.outE().count(),Order.desc).by('name'))], 
-    'g_V_hasLabelXpersonX_order_byXageX': [(lambda g:g.V().hasLabel('person').order().by('age'))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_min': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('foo').cap('a').unfold().min_())], 
+    'g_V_foo_fold_minXlocalX': [(lambda g:g.V().values('foo').fold().min_(Scope.local))], 
+    'g_V_name_fold_minXlocalX': [(lambda g:g.V().values('name').fold().min_(Scope.local))], 
+    'g_V_repeatXbothX_timesX5X_age_min': [(lambda g:g.V().repeat(__.both()).times(5).values('age').min_())], 
+    'g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_minX': [(lambda g:g.V().has_label('software').group().by('name').by(__.both_e().values('weight').min_()))], 
+    'g_V_foo_injectX9999999999X_min': [(lambda g, xx1=None:g.V().values('foo').inject(xx1).min_())], 
+    'g_VX1X_valuesXageX_minXlocalX': [(lambda g, vid1=None:g.V(vid1).values('age').min_(Scope.local))], 
+    'g_V_name_order': [(lambda g:g.V().values('name').order())], 
+    'g_V_name_order_byXa1_b1X_byXb2_a2X': [(lambda g, c1=None,c2=None:g.V().values('name').order().by(c1).by(c2))], 
+    'g_V_order_byXname_ascX_name': [(lambda g:g.V().order().by('name', Order.asc).values('name'))], 
+    'g_V_order_byXnameX_name': [(lambda g:g.V().order().by('name').values('name'))], 
+    'g_V_outE_order_byXweight_descX_weight': [(lambda g:g.V().out_e().order().by('weight', Order.desc).values('weight'))], 
+    'g_V_order_byXname_a1_b1X_byXname_b2_a2X_name': [(lambda g, c1=None,c2=None:g.V().order().by('name', c1).by('name', c2).values('name'))], 
+    'g_V_asXaX_outXcreatedX_asXbX_order_byXshuffleX_selectXa_bX': [(lambda g:g.V().as_('a').out('created').as_('b').order().by(Order.shuffle).select('a', 'b'))], 
+    'g_V_both_hasLabelXpersonX_order_byXage_descX_limitX5X_name': [(lambda g:g.V().both().has_label('person').order().by('age', Order.desc).limit(5).values('name'))], 
+    'g_V_properties_order_byXkey_descX_key': [(lambda g:g.V().properties().order().by(T.key, Order.desc).key())], 
+    'g_V_hasLabelXpersonX_order_byXvalueXageX_descX_name': [],  # skipping as it contains a lambda
+    'g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_orderXlocalX_byXvaluesX': [(lambda g:g.V().has_label('person').group().by('name').by(__.out_e().values('weight').sum_()).order(Scope.local).by(Column.values))], 
+    'g_V_mapXbothE_weight_foldX_order_byXsumXlocalX_descX_byXcountXlocalX_descX': [(lambda g:g.V().map(__.both_e().values('weight').order().by(Order.asc).fold()).order().by(__.sum_(Scope.local), Order.desc).by(__.count(Scope.local), Order.desc))], 
+    'g_V_group_byXlabelX_byXname_order_byXdescX_foldX': [(lambda g:g.V().group().by(T.label).by(__.values('name').order().by(Order.desc).fold()))], 
+    'g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_descX': [(lambda g:g.V().has_label('person').group().by('name').by(__.out_e().values('weight').sum_()).unfold().order().by(Column.values, Order.desc))], 
+    'g_V_asXvX_mapXbothE_weight_foldX_sumXlocalX_asXsX_selectXv_sX_order_byXselectXsX_descX_byXselectXvX_nameX': [(lambda g:g.V().as_('v').map(__.both_e().values('weight').fold()).sum_(Scope.local).as_('s').select('v', 's').order().by(__.select('s'), Order.desc).by(__.select('v').values('name')))], 
+    'g_V_hasLabelXpersonX_fold_orderXlocalX_byXageX': [(lambda g:g.V().has_label('person').fold().order(Scope.local).by('age'))], 
+    'g_V_both_hasLabelXpersonX_order_byXage_descX_name': [(lambda g:g.V().both().has_label('person').order().by('age', Order.desc).values('name'))], 
+    'g_V_order_byXoutE_count_descX_byXnameX': [(lambda g:g.V().order().by(__.out_e().count(), Order.desc).by('name'))], 
+    'g_V_hasLabelXpersonX_order_byXageX': [(lambda g:g.V().has_label('person').order().by('age'))], 
     'g_V_order_byXageX': [(lambda g:g.V().order().by('age'))], 
     'g_V_fold_orderXlocalX_byXageX': [(lambda g:g.V().fold().order(Scope.local).by('age'))], 
-    'g_V_fold_orderXlocalX_byXage_descX': [(lambda g:g.V().fold().order(Scope.local).by('age',Order.desc))], 
-    'g_V_orXhasLabelXpersonX_hasXsoftware_name_lopXX_order_byXageX': [(lambda g:g.V().or_(__.hasLabel('person'),__.has('software','name','lop')).order().by('age'))], 
-    'g_withStrategiesXProductiveByStrategyX_V_orXhasLabelXpersonX_hasXsoftware_name_lopXX_order_byXageX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().or_(__.hasLabel('person'),__.has('software','name','lop')).order().by('age'))], 
-    'g_VX1X_hasXlabel_personX_mapXmapXint_ageXX_orderXlocalX_byXvalues_descX_byXkeys_ascX': [(lambda g, l1=None,v1=None:g.V(v1).hasLabel('person').map(l1).order(Scope.local).by(Column.values,Order.desc).by(Column.keys,Order.asc))], 
-    'g_V_hasXsong_name_OHBOYX_outXfollowedByX_outXfollowedByX_order_byXperformancesX_byXsongType_descX': [(lambda g:g.V().has('song','name','OH BOY').out('followedBy').out('followedBy').order().by('performances').by('songType',Order.desc).by('name'))], 
-    'g_V_hasLabelXsongX_order_byXperformances_descX_byXnameX_rangeX110_120X_name': [(lambda g:g.V().hasLabel('song').order().by('performances',Order.desc).by('name')[110:120].name)], 
-    'g_VX1X_elementMap_orderXlocalX_byXkeys_descXunfold': [(lambda g, vid1=None:g.V(vid1).elementMap().order(Scope.local).by(Column.keys,Order.desc).unfold())], 
-    'g_VX1X_elementMap_orderXlocalX_byXkeys_ascXunfold': [(lambda g, vid1=None:g.V(vid1).elementMap().order(Scope.local).by(Column.keys,Order.asc).unfold())], 
-    'g_VX1X_valuesXageX_orderXlocalX': [(lambda g, vid1=None:g.V(vid1).age.order(Scope.local))], 
-    'g_V_pageRank_hasXpageRankX': [(lambda g:g.V().pageRank().has('gremlin.pageRankVertexProgram.pageRank'))], 
-    'g_V_outXcreatedX_pageRank_withXedges_bothEX_withXpropertyName_projectRankX_withXtimes_0X_valueMapXname_projectRankX': [(lambda g:g.V().out('created').pageRank().with_('~tinkerpop.pageRank.edges',__.bothE()).with_('~tinkerpop.pageRank.propertyName','projectRank').with_('~tinkerpop.pageRank.times',0).valueMap('name','projectRank'))], 
-    'g_V_pageRank_order_byXpageRank_descX_byXnameX_name': [(lambda g:g.V().pageRank().order().by('gremlin.pageRankVertexProgram.pageRank',Order.desc).by('name').name)], 
-    'g_V_pageRank_order_byXpageRank_descX_name_limitX2X': [(lambda g:g.V().pageRank().order().by('gremlin.pageRankVertexProgram.pageRank',Order.desc).name[0:2])], 
-    'g_V_pageRank_withXedges_outEXknowsXX_withXpropertyName_friendRankX_project_byXnameX_byXvaluesXfriendRankX_mathX': [(lambda g:g.V().pageRank().with_('~tinkerpop.pageRank.edges',__.outE('knows')).with_('~tinkerpop.pageRank.propertyName','friendRank').project('name','friendRank').by('name').by(__.friendRank.math('ceil(_ * 100)')))], 
-    'g_V_hasLabelXpersonX_pageRank_withXpropertyName_kpageRankX_project_byXnameX_byXvaluesXpageRankX_mathX': [(lambda g:g.V().hasLabel('person').pageRank().with_('~tinkerpop.pageRank.propertyName','pageRank').project('name','pageRank').by('name').by(__.values('pageRank').math('ceil(_ * 100)')))], 
-    'g_V_pageRank_withXpropertyName_pageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX_by_byXmathX': [(lambda g:g.V().pageRank().with_('~tinkerpop.pageRank.propertyName','pageRank').as_('a').out('knows').values('pageRank').as_('b').select('a','b').by().by(__.math('ceil(_ * 100)')))], 
-    'g_V_hasLabelXsoftwareX_hasXname_rippleX_pageRankX1X_withXedges_inEXcreatedX_withXtimes_1X_withXpropertyName_priorsX_inXcreatedX_unionXboth__identityX_valueMapXname_priorsX': [(lambda g:g.V().hasLabel('software').has('name','ripple').pageRank(float(1.0)).with_('~tinkerpop.pageRank.edges',__.inE('created')).with_('~tinkerpop.pageRank.times',1).with_('~tinkerpop.pageRank.propertyName','priors').in_('created').union(__.both(),__.identity()).valueMap('name','priors'))], 
-    'g_V_outXcreatedX_groupXmX_byXlabelX_pageRankX1X_withXpropertyName_pageRankX_withXedges_inEX_withXtimes_1X_inXcreatedX_groupXmX_byXpageRankX_capXmX': [(lambda g:g.V().out('created').group('m').by(T.label).pageRank(float(1.0)).with_('~tinkerpop.pageRank.propertyName','pageRank').with_('~tinkerpop.pageRank.edges',__.inE()).with_('~tinkerpop.pageRank.times',1).in_('created').group('m').by('pageRank').cap('m'))], 
-    'g_VX1X_name_path': [(lambda g, vid1=None:g.V(vid1).name.path())], 
+    'g_V_fold_orderXlocalX_byXage_descX': [(lambda g:g.V().fold().order(Scope.local).by('age', Order.desc))], 
+    'g_V_orXhasLabelXpersonX_hasXsoftware_name_lopXX_order_byXageX': [(lambda g:g.V().or_(__.has_label('person'), __.has('software', 'name', 'lop')).order().by('age'))], 
+    'g_withStrategiesXProductiveByStrategyX_V_orXhasLabelXpersonX_hasXsoftware_name_lopXX_order_byXageX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().or_(__.has_label('person'), __.has('software', 'name', 'lop')).order().by('age'))], 
+    'g_VX1X_hasXlabel_personX_mapXmapXint_ageXX_orderXlocalX_byXvalues_descX_byXkeys_ascX': [],  # skipping as it contains a lambda
+    'g_V_hasXsong_name_OHBOYX_outXfollowedByX_outXfollowedByX_order_byXperformancesX_byXsongType_descX': [(lambda g:g.V().has('song', 'name', 'OH BOY').out('followedBy').out('followedBy').order().by('performances').by('songType', Order.desc).by('name'))], 
+    'g_V_hasLabelXsongX_order_byXperformances_descX_byXnameX_rangeX110_120X_name': [(lambda g:g.V().has_label('song').order().by('performances', Order.desc).by('name').range_(110, 120).values('name'))], 
+    'g_VX1X_elementMap_orderXlocalX_byXkeys_descXunfold': [(lambda g, vid1=None:g.V(vid1).element_map().order(Scope.local).by(Column.keys, Order.desc).unfold())], 
+    'g_VX1X_elementMap_orderXlocalX_byXkeys_ascXunfold': [(lambda g, vid1=None:g.V(vid1).element_map().order(Scope.local).by(Column.keys, Order.asc).unfold())], 
+    'g_VX1X_valuesXageX_orderXlocalX': [(lambda g, vid1=None:g.V(vid1).values('age').order(Scope.local))], 
+    'g_V_pageRank_hasXpageRankX': [(lambda g:g.V().page_rank().has('gremlin.pageRankVertexProgram.pageRank'))], 
+    'g_V_outXcreatedX_pageRank_withXedges_bothEX_withXpropertyName_projectRankX_withXtimes_0X_valueMapXname_projectRankX': [(lambda g:g.V().out('created').page_rank().with_('~tinkerpop.pageRank.edges', __.both_e()).with_('~tinkerpop.pageRank.propertyName', 'projectRank').with_('~tinkerpop.pageRank.times', 0).value_map('name', 'projectRank'))], 
+    'g_V_pageRank_order_byXpageRank_descX_byXnameX_name': [(lambda g:g.V().page_rank().order().by('gremlin.pageRankVertexProgram.pageRank', Order.desc).by('name').values('name'))], 
+    'g_V_pageRank_order_byXpageRank_descX_name_limitX2X': [(lambda g:g.V().page_rank().order().by('gremlin.pageRankVertexProgram.pageRank', Order.desc).values('name').limit(2))], 
+    'g_V_pageRank_withXedges_outEXknowsXX_withXpropertyName_friendRankX_project_byXnameX_byXvaluesXfriendRankX_mathX': [(lambda g:g.V().page_rank().with_('~tinkerpop.pageRank.edges', __.out_e('knows')).with_('~tinkerpop.pageRank.propertyName', 'friendRank').project('name', 'friendRank').by('name').by(__.values('friendRank').math('ceil(_ * 100)')))], 
+    'g_V_hasLabelXpersonX_pageRank_withXpropertyName_kpageRankX_project_byXnameX_byXvaluesXpageRankX_mathX': [(lambda g:g.V().has_label('person').page_rank().with_('~tinkerpop.pageRank.propertyName', 'pageRank').project('name', 'pageRank').by('name').by(__.values('pageRank').math('ceil(_ * 100)')))], 
+    'g_V_pageRank_withXpropertyName_pageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX_by_byXmathX': [(lambda g:g.V().page_rank().with_('~tinkerpop.pageRank.propertyName', 'pageRank').as_('a').out('knows').values('pageRank').as_('b').select('a', 'b').by().by(__.math('ceil(_ * 100)')))], 
+    'g_V_hasLabelXsoftwareX_hasXname_rippleX_pageRankX1X_withXedges_inEXcreatedX_withXtimes_1X_withXpropertyName_priorsX_inXcreatedX_unionXboth__identityX_valueMapXname_priorsX': [(lambda g:g.V().has_label('software').has('name', 'ripple').page_rank(1.0).with_('~tinkerpop.pageRank.edges', __.in_e('created')).with_('~tinkerpop.pageRank.times', 1).with_('~tinkerpop.pageRank.propertyName', 'priors').in_('created').union(__.both(), __.identity()).value_map('name', 'priors'))], 
+    'g_V_outXcreatedX_groupXmX_byXlabelX_pageRankX1X_withXpropertyName_pageRankX_withXedges_inEX_withXtimes_1X_inXcreatedX_groupXmX_byXpageRankX_capXmX': [(lambda g:g.V().out('created').group('m').by(T.label).page_rank(1.0).with_('~tinkerpop.pageRank.propertyName', 'pageRank').with_('~tinkerpop.pageRank.edges', __.in_e()).with_('~tinkerpop.pageRank.times', 1).in_('created').group('m').by('pageRank').cap('m'))], 
+    'g_VX1X_name_path': [(lambda g, vid1=None:g.V(vid1).values('name').path())], 
     'g_VX1X_out_path_byXageX_byXnameX': [(lambda g, vid1=None:g.V(vid1).out().path().by('age').by('name'))], 
     'g_V_repeatXoutX_timesX2X_path_byXitX_byXnameX_byXlangX': [(lambda g:g.V().repeat(__.out()).times(2).path().by().by('name').by('lang'))], 
     'g_V_out_out_path_byXnameX_byXageX': [(lambda g:g.V().out().out().path().by('name').by('age'))], 
-    'g_V_asXaX_hasXname_markoX_asXbX_hasXage_29X_asXcX_path': [(lambda g:g.V().as_('a').has('name','marko').as_('b').has('age',29).as_('c').path())], 
-    'g_VX1X_outEXcreatedX_inV_inE_outV_path': [(lambda g, vid1=None:g.V(vid1).outE('created').in_v().inE().out_v().path())], 
+    'g_V_asXaX_hasXname_markoX_asXbX_hasXage_29X_asXcX_path': [(lambda g:g.V().as_('a').has('name', 'marko').as_('b').has('age', 29).as_('c').path())], 
+    'g_VX1X_outEXcreatedX_inV_inE_outV_path': [(lambda g, vid1=None:g.V(vid1).out_e('created').in_v().in_e().out_v().path())], 
     'g_V_asXaX_out_asXbX_out_asXcX_path_fromXbX_toXcX_byXnameX': [(lambda g:g.V().as_('a').out().as_('b').out().as_('c').path().from_('b').to('c').by('name'))], 
     'g_VX1X_out_path_byXageX': [(lambda g, vid1=None:g.V(vid1).out().path().by('age'))], 
-    'g_withStrategiesXProductiveByStrategyX_VX1X_out_path_byXageX': [(lambda g, vid1=None:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V(vid1).out().path().by('age'))], 
-    'g_injectX1_null_nullX_path': [(lambda g:g.inject(1,None,None).path())], 
-    'g_injectX1_null_nullX_path_dedup': [(lambda g:g.inject(1,None,None).path().dedup())], 
-    'g_V_peerPressure_hasXclusterX': [(lambda g:g.V().peerPressure().has('gremlin.peerPressureVertexProgram.cluster'))], 
-    'g_V_peerPressure_withXpropertyName_clusterX_withXedges_outEXknowsXX_pageRankX1X_byXrankX_withXedges_outEXknowsX_withXtimes_2X_group_byXclusterX_byXrank_sumX_limitX100X': [(lambda g:g.V().peerPressure().with_('~tinkerpop.peerPressure.propertyName','cluster').with_('~tinkerpop.peerPressure.edges',__.outE('knows')).pageRank(float(1.0)).with_('~tinkerpop.pageRank.propertyName','rank').with_('~tinkerpop.pageRank.edges',__.outE('knows')).with_('~tinkerpop.pageRank.times',1).group().by('cl [...]
-    'g_V_hasXname_rippleX_inXcreatedX_peerPressure_withXedges_outEX_withyXpropertyName_clusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX': [(lambda g:g.V().has('name','ripple').in_('created').peerPressure().with_('~tinkerpop.peerPressure.edges',__.outE()).with_('~tinkerpop.peerPressure.propertyName','cluster').repeat(__.union(__.identity(),__.both())).times(2).dedup().valueMap('name','cluster'))], 
+    'g_withStrategiesXProductiveByStrategyX_VX1X_out_path_byXageX': [(lambda g, vid1=None:g.with_strategies(ProductiveByStrategy()).V(vid1).out().path().by('age'))], 
+    'g_injectX1_null_nullX_path': [(lambda g:g.inject(1, None, None).path())], 
+    'g_injectX1_null_nullX_path_dedup': [(lambda g:g.inject(1, None, None).path().dedup())], 
+    'g_V_peerPressure_hasXclusterX': [(lambda g:g.V().peer_pressure().has('gremlin.peerPressureVertexProgram.cluster'))], 
+    'g_V_peerPressure_withXpropertyName_clusterX_withXedges_outEXknowsXX_pageRankX1X_byXrankX_withXedges_outEXknowsX_withXtimes_2X_group_byXclusterX_byXrank_sumX_limitX100X': [(lambda g:g.V().peer_pressure().with_('~tinkerpop.peerPressure.propertyName', 'cluster').with_('~tinkerpop.peerPressure.edges', __.out_e('knows')).page_rank(1.0).with_('~tinkerpop.pageRank.propertyName', 'rank').with_('~tinkerpop.pageRank.edges', __.out_e('knows')).with_('~tinkerpop.pageRank.times', 1).group().by(' [...]
+    'g_V_hasXname_rippleX_inXcreatedX_peerPressure_withXedges_outEX_withyXpropertyName_clusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX': [(lambda g:g.V().has('name', 'ripple').in_('created').peer_pressure().with_('~tinkerpop.peerPressure.edges', __.out_e()).with_('~tinkerpop.peerPressure.propertyName', 'cluster').repeat(__.union(__.identity(), __.both())).times(2).dedup().value_map('name', 'cluster'))], 
     'g_injectXnullX_productXinjectX1XX': [(lambda g:g.inject(None).product(__.inject(1)))], 
-    'g_V_valuesXnameX_productXV_foldX': [(lambda g:g.V().name.product(__.V().fold()))], 
+    'g_V_valuesXnameX_productXV_foldX': [(lambda g:g.V().values('name').product(__.V().fold()))], 
     'g_V_fold_productXconstantXnullXX': [(lambda g:g.V().fold().product(__.constant(None)))], 
     'g_V_fold_productXVX': [(lambda g:g.V().fold().product(__.V()))], 
-    'g_V_valuesXnameX_fold_productX2X': [(lambda g:g.V().name.fold().product(2))], 
-    'g_V_valuesXnameX_fold_productXnullX': [(lambda g:g.V().name.fold().product(None))], 
-    'g_V_valuesXnonexistantX_fold_productXV_valuesXnameX_foldX': [(lambda g:g.V().nonexistant.fold().product(__.V().name.fold()))], 
-    'g_V_valuesXnameX_fold_productXV_valuesXnonexistantX_foldX': [(lambda g:g.V().name.fold().product(__.V().nonexistant.fold()))], 
-    'g_V_valuesXageX_order_byXdescX_limitX3X_fold_productXV_valuesXageX_order_byXascX_limitX2X_foldX_unfold': [(lambda g:g.V().age.order().by(Order.desc)[0:3].fold().product(__.V().age.order().by(Order.asc)[0:2].fold()).unfold())], 
-    'g_V_out_path_byXvaluesXnameX_toUpperX_productXMARKOX_unfold': [(lambda g, xx1=None:g.V().out().path().by(__.name.to_upper()).product(xx1).unfold())], 
-    'g_injectXmarkoX_productXV_valuesXnameX_order_foldX_unfold': [(lambda g, xx1=None:g.inject(xx1).product(__.V().name.order().fold()).unfold())], 
-    'g_V_valueMapXlocationX_selectXvaluesX_unfold_productXdulles_seattle_vancouverX_unfold': [(lambda g, xx1=None:g.V().valueMap('location').select(Column.values).unfold().product(xx1).unfold())], 
-    'g_V_valuesXageX_order_byXascX_fold_productXconstantX27X_foldX_unfold': [(lambda g:g.V().age.order().by(Order.asc).fold().product(__.constant(27).fold()).unfold())], 
+    'g_V_valuesXnameX_fold_productX2X': [(lambda g:g.V().values('name').fold().product(2))], 
+    'g_V_valuesXnameX_fold_productXnullX': [(lambda g:g.V().values('name').fold().product(None))], 
+    'g_V_valuesXnonexistantX_fold_productXV_valuesXnameX_foldX': [(lambda g:g.V().values('nonexistant').fold().product(__.V().values('name').fold()))], 
+    'g_V_valuesXnameX_fold_productXV_valuesXnonexistantX_foldX': [(lambda g:g.V().values('name').fold().product(__.V().values('nonexistant').fold()))], 
+    'g_V_valuesXageX_order_byXdescX_limitX3X_fold_productXV_valuesXageX_order_byXascX_limitX2X_foldX_unfold': [(lambda g:g.V().values('age').order().by(Order.desc).limit(3).fold().product(__.V().values('age').order().by(Order.asc).limit(2).fold()).unfold())], 
+    'g_V_out_path_byXvaluesXnameX_toUpperX_productXMARKOX_unfold': [(lambda g, xx1=None:g.V().out().path().by(__.values('name').to_upper()).product(xx1).unfold())], 
+    'g_injectXmarkoX_productXV_valuesXnameX_order_foldX_unfold': [(lambda g, xx1=None:g.inject(xx1).product(__.V().values('name').order().fold()).unfold())], 
+    'g_V_valueMapXlocationX_selectXvaluesX_unfold_productXdulles_seattle_vancouverX_unfold': [(lambda g, xx1=None:g.V().value_map('location').select(Column.values).unfold().product(xx1).unfold())], 
+    'g_V_valuesXageX_order_byXascX_fold_productXconstantX27X_foldX_unfold': [(lambda g:g.V().values('age').order().by(Order.asc).fold().product(__.constant(27).fold()).unfold())], 
     'g_V_out_out_path_byXnameX_productXdave_kelvinX_unfold': [(lambda g, xx1=None:g.V().out().out().path().by('name').product(xx1).unfold())], 
     'g_injectXa_null_bX_productXa_cX_unfold': [(lambda g, xx1=None,xx2=None:g.inject(xx1).product(xx2).unfold())], 
     'g_injectXa_null_bX_productXa_null_cX_unfold': [(lambda g, xx1=None,xx2=None:g.inject(xx1).product(xx2).unfold())], 
     'g_injectX3_threeX_productXfive_three_7X_unfold': [(lambda g, xx1=None,xx2=None:g.inject(xx1).product(xx2).unfold())], 
-    'g_V_hasLabelXpersonX_projectXa_bX_byXoutE_countX_byXageX': [(lambda g:g.V().hasLabel('person').project('a','b').by(__.outE().count()).by('age'))], 
-    'g_V_outXcreatedX_projectXa_bX_byXnameX_byXinXcreatedX_countX_order_byXselectXbX__descX_selectXaX': [(lambda g:g.V().out('created').project('a','b').by('name').by(__.in_('created').count()).order().by(__.select('b'),Order.desc).select('a'))], 
-    'g_V_valueMap_projectXxX_byXselectXnameXX': [(lambda g:g.V().valueMap().project('x').by(__.select('name')))], 
-    'g_V_projectXa_bX_byXinE_countX_byXageX': [(lambda g:g.V().project('a','b').by(__.inE().count()).by('age'))], 
-    'g_withStrategiesXProductiveByStrategyX_V_projectXa_bX_byXinE_countX_byXageX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().project('a','b').by(__.inE().count()).by('age'))], 
+    'g_V_hasLabelXpersonX_projectXa_bX_byXoutE_countX_byXageX': [(lambda g:g.V().has_label('person').project('a', 'b').by(__.out_e().count()).by('age'))], 
+    'g_V_outXcreatedX_projectXa_bX_byXnameX_byXinXcreatedX_countX_order_byXselectXbX__descX_selectXaX': [(lambda g:g.V().out('created').project('a', 'b').by('name').by(__.in_('created').count()).order().by(__.select('b'), Order.desc).select('a'))], 
+    'g_V_valueMap_projectXxX_byXselectXnameXX': [(lambda g:g.V().value_map().project('x').by(__.select('name')))], 
+    'g_V_projectXa_bX_byXinE_countX_byXageX': [(lambda g:g.V().project('a', 'b').by(__.in_e().count()).by('age'))], 
+    'g_withStrategiesXProductiveByStrategyX_V_projectXa_bX_byXinE_countX_byXageX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().project('a', 'b').by(__.in_e().count()).by('age'))], 
     'g_V_hasXageX_propertiesXnameX': [(lambda g:g.V().has('age').properties('name').value())], 
-    'g_V_hasXageX_propertiesXname_ageX_value': [(lambda g:g.V().has('age').properties('name','age').value())], 
-    'g_V_hasXageX_propertiesXage_nameX_value': [(lambda g:g.V().has('age').properties('age','name').value())], 
-    'g_V_propertiesXname_age_nullX_value': [(lambda g:g.V().properties('name','age',None).value())], 
-    'g_V_valuesXname_age_nullX': [(lambda g:g.V().values('name','age',None))], 
-    'g_injectX__feature___test__nullX_rTrim': [(lambda g:g.inject('feature  ','one test ',None,'',' ').rTrim())], 
-    'g_injectX__feature__X_rTrim': [(lambda g:g.inject('  feature  ').rTrim())], 
-    'g_injectXListXa_bXX_rTrim': [(lambda g, xx1=None:g.inject(xx1).rTrim())], 
-    'g_injectXListX1_2XX_rTrimXlocalX': [(lambda g, xx1=None:g.inject(xx1).rTrim(Scope.local))], 
-    'g_V_valuesXnameX_rTrim': [(lambda g:g.addV('person').property('name',' marko ').property('age',29).as_('marko').addV('person').property('name','  vadas  ').property('age',27).as_('vadas').addV('software').property('name','  lop').property('lang','java').as_('lop').addV('person').property('name','josh  ').property('age',32).as_('josh').addV('software').property('name','   ripple   ').property('lang','java').as_('ripple').addV('person').property('name','peter').property('age',35).as_( [...]
-    'g_V_valuesXnameX_order_fold_rTrimXlocalX': [(lambda g:g.addV('person').property('name',' marko ').property('age',29).as_('marko').addV('person').property('name','  vadas  ').property('age',27).as_('vadas').addV('software').property('name','  lop').property('lang','java').as_('lop').addV('person').property('name','josh  ').property('age',32).as_('josh').addV('software').property('name','   ripple   ').property('lang','java').as_('ripple').addV('person').property('name','peter').prope [...]
-    'g_injectXthat_this_test_nullX_replaceXh_jX': [(lambda g:g.inject('that','this','test',None).replace('h','j'))], 
-    'g_injectXthat_this_test_nullX_fold_replaceXlocal_h_jX': [(lambda g:g.inject('that','this','test',None).fold().replace(Scope.local,'h','j'))], 
-    'g_injectXListXa_bXcX_replaceXa_bX': [(lambda g, xx1=None:g.inject(xx1).replace('a','b'))], 
-    'g_V_hasLabelXsoftwareX_valueXnameX_replaceXnull_iX': [(lambda g:g.V().hasLabel('software').name.replace(None,'g'))], 
-    'g_V_hasLabelXsoftwareX_valueXnameX_replaceXa_iX': [(lambda g:g.V().hasLabel('software').name.replace('p','g'))], 
-    'g_V_hasLabelXsoftwareX_valueXnameX_order_fold_replaceXloacl_a_iX': [(lambda g:g.V().hasLabel('software').name.order().fold().replace(Scope.local,'p','g'))], 
-    'g_injectXfeature_test_nullX_reverse': [(lambda g:g.inject('feature','test one',None).reverse())], 
-    'g_V_valuesXnameX_reverse': [(lambda g:g.V().name.reverse())], 
-    'g_V_valuesXageX_reverse': [(lambda g:g.V().age.reverse())], 
+    'g_V_hasXageX_propertiesXname_ageX_value': [(lambda g:g.V().has('age').properties('name', 'age').value())], 
+    'g_V_hasXageX_propertiesXage_nameX_value': [(lambda g:g.V().has('age').properties('age', 'name').value())], 
+    'g_V_propertiesXname_age_nullX_value': [(lambda g:g.V().properties('name', 'age', None).value())], 
+    'g_V_valuesXname_age_nullX': [(lambda g:g.V().values('name', 'age', None))], 
+    'g_injectX__feature___test__nullX_rTrim': [(lambda g:g.inject('feature  ', 'one test ', None, '', ' ').r_trim())], 
+    'g_injectX__feature__X_rTrim': [(lambda g:g.inject('  feature  ').r_trim())], 
+    'g_injectXListXa_bXX_rTrim': [(lambda g, xx1=None:g.inject(xx1).r_trim())], 
+    'g_injectXListX1_2XX_rTrimXlocalX': [(lambda g, xx1=None:g.inject(xx1).r_trim(Scope.local))], 
+    'g_V_valuesXnameX_rTrim': [(lambda g:g.add_v('person').property('name', ' marko ').property('age', 29).as_('marko').add_v('person').property('name', '  vadas  ').property('age', 27).as_('vadas').add_v('software').property('name', '  lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh  ').property('age', 32).as_('josh').add_v('software').property('name', '   ripple   ').property('lang', 'java').as_('ripple').add_v('person').property('name', 'peter').proper [...]
+    'g_V_valuesXnameX_order_fold_rTrimXlocalX': [(lambda g:g.add_v('person').property('name', ' marko ').property('age', 29).as_('marko').add_v('person').property('name', '  vadas  ').property('age', 27).as_('vadas').add_v('software').property('name', '  lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh  ').property('age', 32).as_('josh').add_v('software').property('name', '   ripple   ').property('lang', 'java').as_('ripple').add_v('person').property('name [...]
+    'g_injectXthat_this_test_nullX_replaceXh_jX': [(lambda g:g.inject('that', 'this', 'test', None).replace('h', 'j'))], 
+    'g_injectXthat_this_test_nullX_fold_replaceXlocal_h_jX': [(lambda g:g.inject('that', 'this', 'test', None).fold().replace(Scope.local, 'h', 'j'))], 
+    'g_injectXListXa_bXcX_replaceXa_bX': [(lambda g, xx1=None:g.inject(xx1).replace('a', 'b'))], 
+    'g_V_hasLabelXsoftwareX_valueXnameX_replaceXnull_iX': [(lambda g:g.V().has_label('software').values('name').replace(None, 'g'))], 
+    'g_V_hasLabelXsoftwareX_valueXnameX_replaceXa_iX': [(lambda g:g.V().has_label('software').values('name').replace('p', 'g'))], 
+    'g_V_hasLabelXsoftwareX_valueXnameX_order_fold_replaceXloacl_a_iX': [(lambda g:g.V().has_label('software').values('name').order().fold().replace(Scope.local, 'p', 'g'))], 
+    'g_injectXfeature_test_nullX_reverse': [(lambda g:g.inject('feature', 'test one', None).reverse())], 
+    'g_V_valuesXnameX_reverse': [(lambda g:g.V().values('name').reverse())], 
+    'g_V_valuesXageX_reverse': [(lambda g:g.V().values('age').reverse())], 
     'g_V_out_path_byXnameX_reverse': [(lambda g:g.V().out().path().by('name').reverse())], 
     'g_V_out_out_path_byXnameX_reverse': [(lambda g:g.V().out().out().path().by('name').reverse())], 
-    'g_V_valuesXageX_fold_orderXlocalX_byXdescX_reverse': [(lambda g:g.V().age.fold().order(Scope.local).by(Order.desc).reverse())], 
-    'g_V_valuesXnameX_fold_orderXlocalX_by_reverse': [(lambda g:g.V().name.fold().order(Scope.local).by().reverse())], 
+    'g_V_valuesXageX_fold_orderXlocalX_byXdescX_reverse': [(lambda g:g.V().values('age').fold().order(Scope.local).by(Order.desc).reverse())], 
+    'g_V_valuesXnameX_fold_orderXlocalX_by_reverse': [(lambda g:g.V().values('name').fold().order(Scope.local).by().reverse())], 
     'g_injectXnullX_reverse': [(lambda g:g.inject(None).reverse())], 
     'g_injectXbX_reverse': [(lambda g:g.inject('b').reverse())], 
     'g_injectX3_threeX_reverse': [(lambda g, xx1=None:g.inject(xx1).reverse())], 
-    'g_VX1X_asXaX_outXknowsX_asXbX_selectXa_bX': [(lambda g, vid1=None:g.V(vid1).as_('a').out('knows').as_('b').select('a','b'))], 
-    'g_VX1X_asXaX_outXknowsX_asXbX_selectXa_bX_byXnameX': [(lambda g, vid1=None:g.V(vid1).as_('a').out('knows').as_('b').select('a','b').by('name'))], 
+    'g_VX1X_asXaX_outXknowsX_asXbX_selectXa_bX': [(lambda g, vid1=None:g.V(vid1).as_('a').out('knows').as_('b').select('a', 'b'))], 
+    'g_VX1X_asXaX_outXknowsX_asXbX_selectXa_bX_byXnameX': [(lambda g, vid1=None:g.V(vid1).as_('a').out('knows').as_('b').select('a', 'b').by('name'))], 
     'g_VX1X_asXaX_outXknowsX_asXbX_selectXaX': [(lambda g, vid1=None:g.V(vid1).as_('a').out('knows').as_('b').select('a'))], 
     'g_VX1X_asXaX_outXknowsX_asXbX_selectXaX_byXnameX': [(lambda g, vid1=None:g.V(vid1).as_('a').out('knows').as_('b').select('a').by('name'))], 
-    'g_V_asXaX_out_asXbX_selectXa_bX_byXnameX': [(lambda g:g.V().as_('a').out().as_('b').select('a','b').by('name'))], 
-    'g_V_asXaX_out_aggregateXxX_asXbX_selectXa_bX_byXnameX': [(lambda g:g.V().as_('a').out().aggregate('x').as_('b').select('a','b').by('name'))], 
-    'g_V_asXaX_name_order_asXbX_selectXa_bX_byXnameX_by_XitX': [(lambda g:g.V().as_('a').name.order().as_('b').select('a','b').by('name').by())], 
-    'g_V_hasXname_gremlinX_inEXusesX_order_byXskill_ascX_asXaX_outV_asXbX_selectXa_bX_byXskillX_byXnameX': [(lambda g:g.V().has('name','gremlin').inE('uses').order().by('skill',Order.asc).as_('a').out_v().as_('b').select('a','b').by('skill').by('name'))], 
-    'g_V_hasXname_isXmarkoXX_asXaX_selectXaX': [(lambda g:g.V().has('name',__.is_('marko')).as_('a').select('a'))], 
-    'g_V_label_groupCount_asXxX_selectXxX': [(lambda g:g.V().label().groupCount().as_('x').select('x'))], 
-    'g_V_hasLabelXpersonX_asXpX_mapXbothE_label_groupCountX_asXrX_selectXp_rX': [(lambda g:g.V().hasLabel('person').as_('p').map(__.bothE().label().groupCount()).as_('r').select('p','r'))], 
-    'g_V_chooseXoutE_count_isX0X__asXaX__asXbXX_chooseXselectXaX__selectXaX__selectXbXX': [(lambda g, xx1=None:g.V().choose(__.outE().count().is_(xx1),__.as_('a'),__.as_('b')).choose(__.select('a'),__.select('a'),__.select('b')))], 
-    'g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX': [(lambda g, vid1=None:g.V(vid1).group('a').by(__.constant('a')).by(__.name).barrier().select('a').select('a'))], 
+    'g_V_asXaX_out_asXbX_selectXa_bX_byXnameX': [(lambda g:g.V().as_('a').out().as_('b').select('a', 'b').by('name'))], 
+    'g_V_asXaX_out_aggregateXxX_asXbX_selectXa_bX_byXnameX': [(lambda g:g.V().as_('a').out().aggregate('x').as_('b').select('a', 'b').by('name'))], 
+    'g_V_asXaX_name_order_asXbX_selectXa_bX_byXnameX_by_XitX': [(lambda g:g.V().as_('a').values('name').order().as_('b').select('a', 'b').by('name').by())], 
+    'g_V_hasXname_gremlinX_inEXusesX_order_byXskill_ascX_asXaX_outV_asXbX_selectXa_bX_byXskillX_byXnameX': [(lambda g:g.V().has('name', 'gremlin').in_e('uses').order().by('skill', Order.asc).as_('a').out_v().as_('b').select('a', 'b').by('skill').by('name'))], 
+    'g_V_hasXname_isXmarkoXX_asXaX_selectXaX': [(lambda g:g.V().has('name', __.is_('marko')).as_('a').select('a'))], 
+    'g_V_label_groupCount_asXxX_selectXxX': [(lambda g:g.V().label().group_count().as_('x').select('x'))], 
+    'g_V_hasLabelXpersonX_asXpX_mapXbothE_label_groupCountX_asXrX_selectXp_rX': [(lambda g:g.V().has_label('person').as_('p').map(__.both_e().label().group_count()).as_('r').select('p', 'r'))], 
+    'g_V_chooseXoutE_count_isX0X__asXaX__asXbXX_chooseXselectXaX__selectXaX__selectXbXX': [(lambda g, xx1=None:g.V().choose(__.out_e().count().is_(xx1), __.as_('a'), __.as_('b')).choose(__.select('a'), __.select('a'), __.select('b')))], 
+    'g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX': [(lambda g, vid1=None:g.V(vid1).group('a').by(__.constant('a')).by(__.values('name')).barrier().select('a').select('a'))], 
     'g_VX1X_asXhereX_out_selectXhereX': [(lambda g, vid1=None:g.V(vid1).as_('here').out().select('here'))], 
     'g_VX4X_out_asXhereX_hasXlang_javaX_selectXhereX': [(lambda g, vid4=None:g.V(vid4).as_('here').out().select('here'))], 
-    'g_VX4X_out_asXhereX_hasXlang_javaX_selectXhereX_name': [(lambda g, vid4=None:g.V(vid4).out().as_('here').has('lang','java').select('here').name)], 
-    'g_VX1X_outE_asXhereX_inV_hasXname_vadasX_selectXhereX': [(lambda g, vid1=None:g.V(vid1).outE().as_('here').in_v().has('name','vadas').select('here'))], 
-    'g_VX1X_outEXknowsX_hasXweight_1X_asXhereX_inV_hasXname_joshX_selectXhereX': [(lambda g, vid1=None:g.V(vid1).outE('knows').has('weight',float(1.0)).as_('here').in_v().has('name','josh').select('here'))], 
-    'g_VX1X_outEXknowsX_asXhereX_hasXweight_1X_asXfakeX_inV_hasXname_joshX_selectXhereX': [(lambda g, vid1=None:g.V(vid1).outE('knows').as_('here').has('weight',float(1.0)).as_('fake').in_v().has('name','josh').select('here'))], 
-    'g_V_asXhereXout_name_selectXhereX': [(lambda g:g.V().as_('here').out().name.select('here'))], 
-    'g_V_outXcreatedX_unionXasXprojectX_inXcreatedX_hasXname_markoX_selectXprojectX__asXprojectX_inXcreatedX_inXknowsX_hasXname_markoX_selectXprojectXX_groupCount_byXnameX': [(lambda g:g.V().out('created').union(__.as_('project').in_('created').has('name','marko').select('project'),__.as_('project').in_('created').in_('knows').has('name','marko').select('project')).groupCount().by('name'))], 
-    'g_V_untilXout_outX_repeatXin_asXaXX_selectXaX_byXtailXlocalX_nameX': [(lambda g:g.V().until(__.out().out()).repeat(__.in_().as_('a')).select('a').by(__.tail(Scope.local).name))], 
-    'g_V_outE_weight_groupCount_selectXkeysX_unfold': [(lambda g:g.V().outE().weight.groupCount().select(Column.keys).unfold())], 
-    'g_V_hasLabelXsoftwareX_asXnameX_asXlanguageX_asXcreatorsX_selectXname_language_creatorsX_byXnameX_byXlangX_byXinXcreatedX_name_fold_orderXlocalXX': [(lambda g:g.V().hasLabel('software').as_('name').as_('language').as_('creators').select('name','language','creators').by('name').by('lang').by(__.in_('created').name.fold().order(Scope.local)))], 
-    'g_V_outE_weight_groupCount_unfold_selectXkeysX_unfold': [(lambda g:g.V().outE().weight.groupCount().unfold().select(Column.keys).unfold())], 
-    'g_V_outE_weight_groupCount_unfold_selectXvaluesX_unfold': [(lambda g:g.V().outE().weight.groupCount().unfold().select(Column.values).unfold())], 
-    'g_V_untilXout_outX_repeatXin_asXaX_in_asXbXX_selectXa_bX_byXnameX': [(lambda g:g.V().until(__.out().out()).repeat(__.in_().as_('a').in_().as_('b')).select('a','b').by('name'))], 
-    'g_V_outE_weight_groupCount_selectXvaluesX_unfold': [(lambda g:g.V().outE().weight.groupCount().select(Column.values).unfold())], 
+    'g_VX4X_out_asXhereX_hasXlang_javaX_selectXhereX_name': [(lambda g, vid4=None:g.V(vid4).out().as_('here').has('lang', 'java').select('here').values('name'))], 
+    'g_VX1X_outE_asXhereX_inV_hasXname_vadasX_selectXhereX': [(lambda g, vid1=None:g.V(vid1).out_e().as_('here').in_v().has('name', 'vadas').select('here'))], 
+    'g_VX1X_outEXknowsX_hasXweight_1X_asXhereX_inV_hasXname_joshX_selectXhereX': [(lambda g, vid1=None:g.V(vid1).out_e('knows').has('weight', 1.0).as_('here').in_v().has('name', 'josh').select('here'))], 
+    'g_VX1X_outEXknowsX_asXhereX_hasXweight_1X_asXfakeX_inV_hasXname_joshX_selectXhereX': [(lambda g, vid1=None:g.V(vid1).out_e('knows').as_('here').has('weight', 1.0).as_('fake').in_v().has('name', 'josh').select('here'))], 
+    'g_V_asXhereXout_name_selectXhereX': [(lambda g:g.V().as_('here').out().values('name').select('here'))], 
+    'g_V_outXcreatedX_unionXasXprojectX_inXcreatedX_hasXname_markoX_selectXprojectX__asXprojectX_inXcreatedX_inXknowsX_hasXname_markoX_selectXprojectXX_groupCount_byXnameX': [(lambda g:g.V().out('created').union(__.as_('project').in_('created').has('name', 'marko').select('project'), __.as_('project').in_('created').in_('knows').has('name', 'marko').select('project')).group_count().by('name'))], 
+    'g_V_untilXout_outX_repeatXin_asXaXX_selectXaX_byXtailXlocalX_nameX': [(lambda g:g.V().until(__.out().out()).repeat(__.in_().as_('a')).select('a').by(__.tail(Scope.local).values('name')))], 
+    'g_V_outE_weight_groupCount_selectXkeysX_unfold': [(lambda g:g.V().out_e().values('weight').group_count().select(Column.keys).unfold())], 
+    'g_V_hasLabelXsoftwareX_asXnameX_asXlanguageX_asXcreatorsX_selectXname_language_creatorsX_byXnameX_byXlangX_byXinXcreatedX_name_fold_orderXlocalXX': [(lambda g:g.V().has_label('software').as_('name').as_('language').as_('creators').select('name', 'language', 'creators').by('name').by('lang').by(__.in_('created').values('name').fold().order(Scope.local)))], 
+    'g_V_outE_weight_groupCount_unfold_selectXkeysX_unfold': [(lambda g:g.V().out_e().values('weight').group_count().unfold().select(Column.keys).unfold())], 
+    'g_V_outE_weight_groupCount_unfold_selectXvaluesX_unfold': [(lambda g:g.V().out_e().values('weight').group_count().unfold().select(Column.values).unfold())], 
+    'g_V_untilXout_outX_repeatXin_asXaX_in_asXbXX_selectXa_bX_byXnameX': [(lambda g:g.V().until(__.out().out()).repeat(__.in_().as_('a').in_().as_('b')).select('a', 'b').by('name'))], 
+    'g_V_outE_weight_groupCount_selectXvaluesX_unfold': [(lambda g:g.V().out_e().values('weight').group_count().select(Column.values).unfold())], 
     'g_V_asXaX_whereXoutXknowsXX_selectXaX': [(lambda g:g.V().as_('a').where(__.out('knows')).select('a'))], 
-    'g_VX1X_asXaX_repeatXout_asXaXX_timesX2X_selectXfirst_aX': [(lambda g, vid1=None:g.V(vid1).as_('a').repeat(__.out().as_('a')).times(2).select(Pop.first,'a'))], 
-    'g_V_asXaX_outXknowsX_asXbX_localXselectXa_bX_byXnameXX': [(lambda g:g.V().as_('a').out('knows').as_('b').local(__.select('a','b').by('name')))], 
-    'g_VX1X_asXaX_repeatXout_asXaXX_timesX2X_selectXlast_aX': [(lambda g, vid1=None:g.V(vid1).as_('a').repeat(__.out().as_('a')).times(2).select(Pop.last,'a'))], 
-    'g_VX1X_outEXknowsX_asXhereX_hasXweight_1X_inV_hasXname_joshX_selectXhereX': [(lambda g, vid1=None:g.V(vid1).outE('knows').as_('here').has('weight',float(1.0)).in_v().has('name','josh').select('here'))], 
-    'g_V_asXaX_hasXname_markoX_asXbX_asXcX_selectXa_b_cX_by_byXnameX_byXageX': [(lambda g:g.V().as_('a').has('name','marko').as_('b').as_('c').select('a','b','c').by().by('name').by('age'))], 
-    'g_V_outE_weight_groupCount_selectXvaluesX_unfold_groupCount_selectXvaluesX_unfold': [(lambda g:g.V().outE().weight.groupCount().select(Column.values).unfold().groupCount().select(Column.values).unfold())], 
-    'g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX': [(lambda g:g.V().as_('a').group('m').by().by(__.bothE().count()).barrier().select('m').select(__.select('a')))], 
-    'g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX_byXmathX_plus_XX': [(lambda g:g.V().as_('a').group('m').by().by(__.bothE().count()).barrier().select('m').select(__.select('a')).by(__.math('_+_')))], 
-    'g_V_asXaX_outXknowsX_asXaX_selectXall_constantXaXX': [(lambda g:g.V().as_('a').out('knows').as_('a').select(Pop.all_,__.constant('a')))], 
+    'g_VX1X_asXaX_repeatXout_asXaXX_timesX2X_selectXfirst_aX': [(lambda g, vid1=None:g.V(vid1).as_('a').repeat(__.out().as_('a')).times(2).select(Pop.first, 'a'))], 
+    'g_V_asXaX_outXknowsX_asXbX_localXselectXa_bX_byXnameXX': [(lambda g:g.V().as_('a').out('knows').as_('b').local(__.select('a', 'b').by('name')))], 
+    'g_VX1X_asXaX_repeatXout_asXaXX_timesX2X_selectXlast_aX': [(lambda g, vid1=None:g.V(vid1).as_('a').repeat(__.out().as_('a')).times(2).select(Pop.last, 'a'))], 
+    'g_VX1X_outEXknowsX_asXhereX_hasXweight_1X_inV_hasXname_joshX_selectXhereX': [(lambda g, vid1=None:g.V(vid1).out_e('knows').as_('here').has('weight', 1.0).in_v().has('name', 'josh').select('here'))], 
+    'g_V_asXaX_hasXname_markoX_asXbX_asXcX_selectXa_b_cX_by_byXnameX_byXageX': [(lambda g:g.V().as_('a').has('name', 'marko').as_('b').as_('c').select('a', 'b', 'c').by().by('name').by('age'))], 
+    'g_V_outE_weight_groupCount_selectXvaluesX_unfold_groupCount_selectXvaluesX_unfold': [(lambda g:g.V().out_e().values('weight').group_count().select(Column.values).unfold().group_count().select(Column.values).unfold())], 
+    'g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX': [(lambda g:g.V().as_('a').group('m').by().by(__.both_e().count()).barrier().select('m').select(__.select('a')))], 
+    'g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX_byXmathX_plus_XX': [(lambda g:g.V().as_('a').group('m').by().by(__.both_e().count()).barrier().select('m').select(__.select('a')).by(__.math('_+_')))], 
+    'g_V_asXaX_outXknowsX_asXaX_selectXall_constantXaXX': [(lambda g:g.V().as_('a').out('knows').as_('a').select(Pop.all_, __.constant('a')))], 
     'g_V_selectXaX': [(lambda g:g.V().select('a'))], 
     'g_V_selectXaX_count': [(lambda g:g.V().select('a').count())], 
-    'g_V_selectXa_bX': [(lambda g:g.V().select('a','b'))], 
-    'g_V_valueMap_selectXaX': [(lambda g:g.V().valueMap().select('a'))], 
-    'g_V_valueMap_selectXa_bX': [(lambda g:g.V().valueMap().select('a','b'))], 
-    'g_V_selectXfirst_aX': [(lambda g:g.V().select(Pop.first,'a'))], 
-    'g_V_selectXfirst_a_bX': [(lambda g:g.V().select(Pop.first,'a','b'))], 
-    'g_V_valueMap_selectXfirst_aX': [(lambda g:g.V().valueMap().select(Pop.first,'a'))], 
-    'g_V_valueMap_selectXfirst_a_bX': [(lambda g:g.V().valueMap().select(Pop.first,'a','b'))], 
-    'g_V_selectXlast_aX': [(lambda g:g.V().select(Pop.last,'a'))], 
-    'g_V_selectXlast_a_bX': [(lambda g:g.V().select(Pop.last,'a','b'))], 
-    'g_V_valueMap_selectXlast_aX': [(lambda g:g.V().valueMap().select(Pop.last,'a'))], 
-    'g_V_valueMap_selectXlast_a_bX': [(lambda g:g.V().valueMap().select(Pop.last,'a','b'))], 
-    'g_V_selectXall_aX': [(lambda g:g.V().select(Pop.all_,'a'))], 
-    'g_V_selectXall_a_bX': [(lambda g:g.V().select(Pop.all_,'a','b'))], 
-    'g_V_valueMap_selectXall_aX': [(lambda g:g.V().valueMap().select(Pop.all_,'a'))], 
-    'g_V_valueMap_selectXall_a_bX': [(lambda g:g.V().valueMap().select(Pop.all_,'a','b'))], 
-    'g_V_asXa_bX_out_asXcX_path_selectXkeysX': [(lambda g:g.V().as_('a','b').out().as_('c').path().select(Column.keys)), (lambda g:g.V().as_('a','b').out().as_('c').path().select(Column.keys))], 
-    'g_V_hasXperson_name_markoX_barrier_asXaX_outXknows_selectXaX': [(lambda g:g.V().has('person','name','marko').barrier().as_('a').out('knows').select('a'))], 
-    'g_V_hasXperson_name_markoX_elementMapXnameX_asXaX_unionXidentity_identityX_selectXaX_selectXnameX': [(lambda g:g.V().has('person','name','marko').elementMap('name').as_('a').union(__.identity(),__.identity()).select('a').select('name'))], 
-    'g_V_hasXperson_name_markoX_count_asXaX_unionXidentity_identityX_selectXaX': [(lambda g:g.V().has('person','name','marko').count().as_('a').union(__.identity(),__.identity()).select('a'))], 
-    'g_V_hasXperson_name_markoX_path_asXaX_unionXidentity_identityX_selectXaX_unfold': [(lambda g:g.V().has('person','name','marko').path().as_('a').union(__.identity(),__.identity()).select('a').unfold())], 
+    'g_V_selectXa_bX': [(lambda g:g.V().select('a', 'b'))], 
+    'g_V_valueMap_selectXaX': [(lambda g:g.V().value_map().select('a'))], 
+    'g_V_valueMap_selectXa_bX': [(lambda g:g.V().value_map().select('a', 'b'))], 
+    'g_V_selectXfirst_aX': [(lambda g:g.V().select(Pop.first, 'a'))], 
+    'g_V_selectXfirst_a_bX': [(lambda g:g.V().select(Pop.first, 'a', 'b'))], 
+    'g_V_valueMap_selectXfirst_aX': [(lambda g:g.V().value_map().select(Pop.first, 'a'))], 
+    'g_V_valueMap_selectXfirst_a_bX': [(lambda g:g.V().value_map().select(Pop.first, 'a', 'b'))], 
+    'g_V_selectXlast_aX': [(lambda g:g.V().select(Pop.last, 'a'))], 
+    'g_V_selectXlast_a_bX': [(lambda g:g.V().select(Pop.last, 'a', 'b'))], 
+    'g_V_valueMap_selectXlast_aX': [(lambda g:g.V().value_map().select(Pop.last, 'a'))], 
+    'g_V_valueMap_selectXlast_a_bX': [(lambda g:g.V().value_map().select(Pop.last, 'a', 'b'))], 
+    'g_V_selectXall_aX': [(lambda g:g.V().select(Pop.all_, 'a'))], 
+    'g_V_selectXall_a_bX': [(lambda g:g.V().select(Pop.all_, 'a', 'b'))], 
+    'g_V_valueMap_selectXall_aX': [(lambda g:g.V().value_map().select(Pop.all_, 'a'))], 
+    'g_V_valueMap_selectXall_a_bX': [(lambda g:g.V().value_map().select(Pop.all_, 'a', 'b'))], 
+    'g_V_asXa_bX_out_asXcX_path_selectXkeysX': [(lambda g:g.V().as_('a', 'b').out().as_('c').path().select(Column.keys)), (lambda g:g.V().as_('a', 'b').out().as_('c').path().select(Column.keys))], 
+    'g_V_hasXperson_name_markoX_barrier_asXaX_outXknows_selectXaX': [(lambda g:g.V().has('person', 'name', 'marko').barrier().as_('a').out('knows').select('a'))], 
+    'g_V_hasXperson_name_markoX_elementMapXnameX_asXaX_unionXidentity_identityX_selectXaX_selectXnameX': [(lambda g:g.V().has('person', 'name', 'marko').element_map('name').as_('a').union(__.identity(), __.identity()).select('a').select('name'))], 
+    'g_V_hasXperson_name_markoX_count_asXaX_unionXidentity_identityX_selectXaX': [(lambda g:g.V().has('person', 'name', 'marko').count().as_('a').union(__.identity(), __.identity()).select('a'))], 
+    'g_V_hasXperson_name_markoX_path_asXaX_unionXidentity_identityX_selectXaX_unfold': [(lambda g:g.V().has('person', 'name', 'marko').path().as_('a').union(__.identity(), __.identity()).select('a').unfold())], 
     'g_EX11X_propertiesXweightX_asXaX_selectXaX_byXkeyX': [(lambda g, eid11=None:g.E(eid11).properties('weight').as_('a').select('a').by(T.key))], 
     'g_EX11X_propertiesXweightX_asXaX_selectXaX_byXvalueX': [(lambda g, eid11=None:g.E(eid11).properties('weight').as_('a').select('a').by(T.value))], 
     'g_V_asXaX_selectXaX_byXageX': [(lambda g:g.V().as_('a').select('a').by('age'))], 
-    'g_V_asXa_nX_selectXa_nX_byXageX_byXnameX': [(lambda g:g.V().as_('a','n').select('a','n').by('age').by('name'))], 
-    'g_withStrategiesXProductiveByStrategyX_V_asXaX_selectXaX_byXageX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().as_('a').select('a').by('age'))], 
-    'g_withSideEffectXk_nullX_injectXxX_selectXkX': [(lambda g:g.withSideEffect('k',None).inject('x').select('k'))], 
-    'g_V_out_in_selectXall_a_a_aX_byXunfold_name_foldX': [(lambda g:g.addV('A').property('name','a1').as_('a1').addV('A').property('name','a2').as_('a2').addV('A').property('name','a3').as_('a3').addV('B').property('name','b1').as_('b1').addV('B').property('name','b2').as_('b2').addV('B').property('name','b3').as_('b3').addE('ab').from_('a1').to('b1').addE('ab').from_('a2').to('b2').addE('ab').from_('a3').to('b3')), (lambda g:g.V().as_('a').out().as_('a').in_().as_('a').select(Pop.all_,' [...]
-    'g_V_shortestPath': [(lambda g:g.V().identity().shortestPath())], 
-    'g_V_both_dedup_shortestPath': [(lambda g:g.V().both().dedup().shortestPath())], 
-    'g_V_shortestPath_edgesIncluded': [(lambda g:g.V().identity().shortestPath().with_('~tinkerpop.shortestPath.includeEdges'))], 
-    'g_V_shortestPath_directionXINX': [(lambda g:g.V().identity().shortestPath().with_('~tinkerpop.shortestPath.edges',Direction.IN))], 
-    'g_V_shortestPath_edgesXoutEX': [(lambda g:g.V().identity().shortestPath().with_('~tinkerpop.shortestPath.edges',__.outE()))], 
-    'g_V_shortestPath_edgesIncluded_edgesXoutEX': [(lambda g:g.V().identity().shortestPath().with_('~tinkerpop.shortestPath.includeEdges').with_('~tinkerpop.shortestPath.edges',__.outE()))], 
-    'g_V_hasXname_markoX_shortestPath': [(lambda g:g.V().has('name','marko').shortestPath())], 
-    'g_V_shortestPath_targetXhasXname_markoXX': [(lambda g:g.V().identity().shortestPath().with_('~tinkerpop.shortestPath.target',__.has('name','marko')))], 
-    'g_V_shortestPath_targetXvaluesXnameX_isXmarkoXX': [(lambda g:g.V().identity().shortestPath().with_('~tinkerpop.shortestPath.target',__.name.is_('marko')))], 
-    'g_V_hasXname_markoX_shortestPath_targetXhasLabelXsoftwareXX': [(lambda g:g.V().has('name','marko').shortestPath().with_('~tinkerpop.shortestPath.target',__.hasLabel('software')))], 
-    'g_V_hasXname_markoX_shortestPath_targetXhasXname_joshXX_distanceXweightX': [(lambda g:g.V().has('name','marko').shortestPath().with_('~tinkerpop.shortestPath.target',__.has('name','josh')).with_('~tinkerpop.shortestPath.distance','weight'))], 
-    'g_V_hasXname_danielX_shortestPath_targetXhasXname_stephenXX_edgesXbothEXusesXX': [(lambda g:g.V().has('name','daniel').shortestPath().with_('~tinkerpop.shortestPath.target',__.has('name','stephen')).with_('~tinkerpop.shortestPath.edges',__.bothE('uses')))], 
-    'g_V_hasXsong_name_MIGHT_AS_WELLX_shortestPath_targetXhasXsong_name_MAYBE_YOU_KNOW_HOW_I_FEELXX_edgesXoutEXfollowedByXX_distanceXweightX': [(lambda g:g.V().has('song','name','MIGHT AS WELL').shortestPath().with_('~tinkerpop.shortestPath.target',__.has('song','name','MAYBE YOU KNOW HOW I FEEL')).with_('~tinkerpop.shortestPath.edges',__.outE('followedBy')).with_('~tinkerpop.shortestPath.distance','weight'))], 
-    'g_V_hasXname_markoX_shortestPath_maxDistanceX1X': [(lambda g:g.V().has('name','marko').shortestPath().with_('~tinkerpop.shortestPath.maxDistance',1))], 
-    'g_V_hasXname_vadasX_shortestPath_distanceXweightX_maxDistanceX1_3X': [(lambda g:g.V().has('name','vadas').shortestPath().with_('~tinkerpop.shortestPath.distance','weight').with_('~tinkerpop.shortestPath.maxDistance',float(1.3)))], 
-    'g_injectXthat_this_testX_spiltXhX': [(lambda g:g.inject('that','this','test',None).split('h'))], 
+    'g_V_asXa_nX_selectXa_nX_byXageX_byXnameX': [(lambda g:g.V().as_('a', 'n').select('a', 'n').by('age').by('name'))], 
+    'g_withStrategiesXProductiveByStrategyX_V_asXaX_selectXaX_byXageX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().as_('a').select('a').by('age'))], 
+    'g_withSideEffectXk_nullX_injectXxX_selectXkX': [(lambda g:g.with_side_effect('k', None).inject('x').select('k'))], 
+    'g_V_out_in_selectXall_a_a_aX_byXunfold_name_foldX': [(lambda g:g.add_v('A').property('name', 'a1').as_('a1').add_v('A').property('name', 'a2').as_('a2').add_v('A').property('name', 'a3').as_('a3').add_v('B').property('name', 'b1').as_('b1').add_v('B').property('name', 'b2').as_('b2').add_v('B').property('name', 'b3').as_('b3').add_e('ab').from_('a1').to('b1').add_e('ab').from_('a2').to('b2').add_e('ab').from_('a3').to('b3')), (lambda g:g.V().as_('a').out().as_('a').in_().as_('a').se [...]
+    'g_V_shortestPath': [(lambda g:g.V().shortest_path())], 
+    'g_V_both_dedup_shortestPath': [(lambda g:g.V().both().dedup().shortest_path())], 
+    'g_V_shortestPath_edgesIncluded': [(lambda g:g.V().shortest_path().with_('~tinkerpop.shortestPath.includeEdges'))], 
+    'g_V_shortestPath_directionXINX': [(lambda g:g.V().shortest_path().with_('~tinkerpop.shortestPath.edges', Direction.IN))], 
+    'g_V_shortestPath_edgesXoutEX': [(lambda g:g.V().shortest_path().with_('~tinkerpop.shortestPath.edges', __.out_e()))], 
+    'g_V_shortestPath_edgesIncluded_edgesXoutEX': [(lambda g:g.V().shortest_path().with_('~tinkerpop.shortestPath.includeEdges').with_('~tinkerpop.shortestPath.edges', __.out_e()))], 
+    'g_V_hasXname_markoX_shortestPath': [(lambda g:g.V().has('name', 'marko').shortest_path())], 
+    'g_V_shortestPath_targetXhasXname_markoXX': [(lambda g:g.V().shortest_path().with_('~tinkerpop.shortestPath.target', __.has('name', 'marko')))], 
+    'g_V_shortestPath_targetXvaluesXnameX_isXmarkoXX': [(lambda g:g.V().shortest_path().with_('~tinkerpop.shortestPath.target', __.values('name').is_('marko')))], 
+    'g_V_hasXname_markoX_shortestPath_targetXhasLabelXsoftwareXX': [(lambda g:g.V().has('name', 'marko').shortest_path().with_('~tinkerpop.shortestPath.target', __.has_label('software')))], 
+    'g_V_hasXname_markoX_shortestPath_targetXhasXname_joshXX_distanceXweightX': [(lambda g:g.V().has('name', 'marko').shortest_path().with_('~tinkerpop.shortestPath.target', __.has('name', 'josh')).with_('~tinkerpop.shortestPath.distance', 'weight'))], 
+    'g_V_hasXname_danielX_shortestPath_targetXhasXname_stephenXX_edgesXbothEXusesXX': [(lambda g:g.V().has('name', 'daniel').shortest_path().with_('~tinkerpop.shortestPath.target', __.has('name', 'stephen')).with_('~tinkerpop.shortestPath.edges', __.both_e('uses')))], 
+    'g_V_hasXsong_name_MIGHT_AS_WELLX_shortestPath_targetXhasXsong_name_MAYBE_YOU_KNOW_HOW_I_FEELXX_edgesXoutEXfollowedByXX_distanceXweightX': [(lambda g:g.V().has('song', 'name', 'MIGHT AS WELL').shortest_path().with_('~tinkerpop.shortestPath.target', __.has('song', 'name', 'MAYBE YOU KNOW HOW I FEEL')).with_('~tinkerpop.shortestPath.edges', __.out_e('followedBy')).with_('~tinkerpop.shortestPath.distance', 'weight'))], 
+    'g_V_hasXname_markoX_shortestPath_maxDistanceX1X': [(lambda g:g.V().has('name', 'marko').shortest_path().with_('~tinkerpop.shortestPath.maxDistance', 1))], 
+    'g_V_hasXname_vadasX_shortestPath_distanceXweightX_maxDistanceX1_3X': [(lambda g:g.V().has('name', 'vadas').shortest_path().with_('~tinkerpop.shortestPath.distance', 'weight').with_('~tinkerpop.shortestPath.maxDistance', 1.3))], 
+    'g_injectXthat_this_testX_spiltXhX': [(lambda g:g.inject('that', 'this', 'test', None).split('h'))], 
     'g_injectXhello_worldX_spiltXnullX': [(lambda g:g.inject('hello world').split(None))], 
     'g_injectXListXa_bXcX_splitXa_bX': [(lambda g, xx1=None:g.inject(xx1).split('a'))], 
-    'g_V_hasLabelXpersonX_valueXnameX_splitXnullX': [(lambda g:g.V().hasLabel('person').name.split(None))], 
-    'g_V_hasLabelXpersonX_valueXnameX_order_fold_splitXlocal_aX_unfold': [(lambda g:g.V().hasLabel('person').name.order().fold().split(Scope.local,'a').unfold())], 
-    'g_injectXthat_this_testX_substringX1_8X': [(lambda g:g.inject('test','hello world',None).substring(1,8))], 
-    'g_injectXListXa_bXcX_substringX1_2X': [(lambda g, xx1=None:g.inject(xx1).substring(1,2))], 
-    'g_V_hasLabelXpersonX_valueXnameX_substringX2X': [(lambda g:g.V().hasLabel('software').name.substring(2))], 
-    'g_V_hasLabelXsoftwareX_valueXnameX_substringX1_4X': [(lambda g:g.V().hasLabel('software').name.substring(1,4))], 
-    'g_V_hasLabelXpersonX_valueXnameX_order_fold_substringXlocal_2X': [(lambda g:g.V().hasLabel('software').name.order().fold().substring(Scope.local,2))], 
-    'g_V_hasLabelXsoftwareX_valueXnameX_order_fold_substringXlocal_1_4X': [(lambda g:g.V().hasLabel('software').name.order().fold().substring(Scope.local,1,4))], 
-    'g_V_hasLabelXsoftwareX_valueXnameX_substringX1_0X': [(lambda g:g.V().hasLabel('software').name.substring(1,0))], 
-    'g_V_hasLabelXpersonX_valueXnameX_substringXneg3X': [(lambda g:g.V().hasLabel('person').name.substring(-3))], 
-    'g_V_hasLabelXsoftwareX_valueXnameX_substringX1_neg1X': [(lambda g:g.V().hasLabel('software').name.substring(1,-1))], 
-    'g_V_hasLabelXsoftwareX_valueXnameX_substringXneg4_2X': [(lambda g:g.V().hasLabel('software').name.substring(-4,2))], 
-    'g_V_hasLabelXsoftwareX_valueXnameX_substringXneg3_neg1X': [(lambda g:g.V().hasLabel('software').name.substring(-3,-1))], 
-    'g_V_age_sum': [(lambda g:g.V().age.sum_())], 
-    'g_V_foo_sum': [(lambda g:g.V().foo.sum_())], 
-    'g_V_age_fold_sumXlocalX': [(lambda g:g.V().age.fold().sum_(Scope.local))], 
-    'g_V_foo_fold_sumXlocalX': [(lambda g:g.V().foo.fold().sum_(Scope.local))], 
-    'g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_sumX': [(lambda g:g.V().hasLabel('software').group().by('name').by(__.bothE().weight.sum_()))], 
+    'g_V_hasLabelXpersonX_valueXnameX_splitXnullX': [(lambda g:g.V().has_label('person').values('name').split(None))], 
+    'g_V_hasLabelXpersonX_valueXnameX_order_fold_splitXlocal_aX_unfold': [(lambda g:g.V().has_label('person').values('name').order().fold().split(Scope.local, 'a').unfold())], 
+    'g_injectXthat_this_testX_substringX1_8X': [(lambda g:g.inject('test', 'hello world', None).substring(1, 8))], 
+    'g_injectXListXa_bXcX_substringX1_2X': [(lambda g, xx1=None:g.inject(xx1).substring(1, 2))], 
+    'g_V_hasLabelXpersonX_valueXnameX_substringX2X': [(lambda g:g.V().has_label('software').values('name').substring(2))], 
+    'g_V_hasLabelXsoftwareX_valueXnameX_substringX1_4X': [(lambda g:g.V().has_label('software').values('name').substring(1, 4))], 
+    'g_V_hasLabelXpersonX_valueXnameX_order_fold_substringXlocal_2X': [(lambda g:g.V().has_label('software').values('name').order().fold().substring(Scope.local, 2))], 
+    'g_V_hasLabelXsoftwareX_valueXnameX_order_fold_substringXlocal_1_4X': [(lambda g:g.V().has_label('software').values('name').order().fold().substring(Scope.local, 1, 4))], 
+    'g_V_hasLabelXsoftwareX_valueXnameX_substringX1_0X': [(lambda g:g.V().has_label('software').values('name').substring(1, 0))], 
+    'g_V_hasLabelXpersonX_valueXnameX_substringXneg3X': [(lambda g:g.V().has_label('person').values('name').substring(-3))], 
+    'g_V_hasLabelXsoftwareX_valueXnameX_substringX1_neg1X': [(lambda g:g.V().has_label('software').values('name').substring(1, -1))], 
+    'g_V_hasLabelXsoftwareX_valueXnameX_substringXneg4_2X': [(lambda g:g.V().has_label('software').values('name').substring(-4, 2))], 
+    'g_V_hasLabelXsoftwareX_valueXnameX_substringXneg3_neg1X': [(lambda g:g.V().has_label('software').values('name').substring(-3, -1))], 
+    'g_V_age_sum': [(lambda g:g.V().values('age').sum_())], 
+    'g_V_foo_sum': [(lambda g:g.V().values('foo').sum_())], 
+    'g_V_age_fold_sumXlocalX': [(lambda g:g.V().values('age').fold().sum_(Scope.local))], 
+    'g_V_foo_fold_sumXlocalX': [(lambda g:g.V().values('foo').fold().sum_(Scope.local))], 
+    'g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_sumX': [(lambda g:g.V().has_label('software').group().by('name').by(__.both_e().values('weight').sum_()))], 
     'g_V_aggregateXaX_byXageX_sumXlocalX': [(lambda g:g.V().aggregate('a').by('age').cap('a').sum_(Scope.local))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_sumXlocalX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('age').cap('a').sum_(Scope.local))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_sumXlocalX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('age').cap('a').sum_(Scope.local))], 
     'g_V_aggregateXaX_byXageX_capXaX_unfold_sum': [(lambda g:g.V().aggregate('a').by('age').cap('a').unfold().sum_())], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_sum': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('age').cap('a').unfold().sum_())], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_sum': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('age').cap('a').unfold().sum_())], 
     'g_V_aggregateXaX_byXfooX_sumXlocalX': [(lambda g:g.V().aggregate('a').by('foo').cap('a').sum_(Scope.local))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_sumXlocalX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('foo').cap('a').sum_(Scope.local))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_sumXlocalX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('foo').cap('a').sum_(Scope.local))], 
     'g_V_aggregateXaX_byXfooX_capXaX_unfold_sum': [(lambda g:g.V().aggregate('a').by('foo').cap('a').unfold().sum_())], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_sum': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('a').by('foo').cap('a').unfold().sum_())], 
-    'g_injectXnull_10_5_nullX_sum': [(lambda g, xx1=None,xx2=None:g.inject(None,xx1,xx2,None).sum_())], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_sum': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('a').by('foo').cap('a').unfold().sum_())], 
+    'g_injectXnull_10_5_nullX_sum': [(lambda g, xx1=None,xx2=None:g.inject(None, xx1, xx2, None).sum_())], 
     'g_injectXlistXnull_10_5_nullXX_sumXlocalX': [(lambda g, xx1=None:g.inject(xx1).sum_(Scope.local))], 
-    'g_VX1X_valuesXageX_sumXlocalX': [(lambda g, vid1=None:g.V(vid1).age.sum_(Scope.local))], 
-    'g_injectXfeature_test_nullX_toLower': [(lambda g:g.inject('FEATURE','tESt',None).to_lower())], 
+    'g_VX1X_valuesXageX_sumXlocalX': [(lambda g, vid1=None:g.V(vid1).values('age').sum_(Scope.local))], 
+    'g_injectXfeature_test_nullX_toLower': [(lambda g:g.inject('FEATURE', 'tESt', None).to_lower())], 
     'g_injectXfeature_test_nullX_toLowerXlocalX': [(lambda g, xx1=None:g.inject(xx1).to_lower(Scope.local))], 
     'g_injectXListXa_bXX_toLower': [(lambda g, xx1=None:g.inject(xx1).to_lower())], 
-    'g_V_valuesXnameX_toLower': [(lambda g:g.addV('person').property('name','MARKO').property('age',29).as_('marko').addV('person').property('name','VADAS').property('age',27).as_('vadas').addV('software').property('name','LOP').property('lang','java').as_('lop').addV('person').property('name','JOSH').property('age',32).as_('josh').addV('software').property('name','RIPPLE').property('lang','java').as_('ripple').addV('person').property('name','PETER').property('age',35).as_('peter').addE( [...]
-    'g_V_valuesXnameX_toLowerXlocalX': [(lambda g:g.addV('person').property('name','MARKO').property('age',29).as_('marko').addV('person').property('name','VADAS').property('age',27).as_('vadas').addV('software').property('name','LOP').property('lang','java').as_('lop').addV('person').property('name','JOSH').property('age',32).as_('josh').addV('software').property('name','RIPPLE').property('lang','java').as_('ripple').addV('person').property('name','PETER').property('age',35).as_('peter' [...]
-    'g_V_valuesXnameX_order_fold_toLowerXlocalX': [(lambda g:g.addV('person').property('name','MARKO').property('age',29).as_('marko').addV('person').property('name','VADAS').property('age',27).as_('vadas').addV('software').property('name','LOP').property('lang','java').as_('lop').addV('person').property('name','JOSH').property('age',32).as_('josh').addV('software').property('name','RIPPLE').property('lang','java').as_('ripple').addV('person').property('name','PETER').property('age',35). [...]
-    'g_injectXfeature_test_nullX_toUpper': [(lambda g:g.inject('feature','tESt',None).to_upper())], 
+    'g_V_valuesXnameX_toLower': [(lambda g:g.add_v('person').property('name', 'MARKO').property('age', 29).as_('marko').add_v('person').property('name', 'VADAS').property('age', 27).as_('vadas').add_v('software').property('name', 'LOP').property('lang', 'java').as_('lop').add_v('person').property('name', 'JOSH').property('age', 32).as_('josh').add_v('software').property('name', 'RIPPLE').property('lang', 'java').as_('ripple').add_v('person').property('name', 'PETER').property('age', 35). [...]
+    'g_V_valuesXnameX_toLowerXlocalX': [(lambda g:g.add_v('person').property('name', 'MARKO').property('age', 29).as_('marko').add_v('person').property('name', 'VADAS').property('age', 27).as_('vadas').add_v('software').property('name', 'LOP').property('lang', 'java').as_('lop').add_v('person').property('name', 'JOSH').property('age', 32).as_('josh').add_v('software').property('name', 'RIPPLE').property('lang', 'java').as_('ripple').add_v('person').property('name', 'PETER').property('age [...]
+    'g_V_valuesXnameX_order_fold_toLowerXlocalX': [(lambda g:g.add_v('person').property('name', 'MARKO').property('age', 29).as_('marko').add_v('person').property('name', 'VADAS').property('age', 27).as_('vadas').add_v('software').property('name', 'LOP').property('lang', 'java').as_('lop').add_v('person').property('name', 'JOSH').property('age', 32).as_('josh').add_v('software').property('name', 'RIPPLE').property('lang', 'java').as_('ripple').add_v('person').property('name', 'PETER').pr [...]
+    'g_injectXfeature_test_nullX_toUpper': [(lambda g:g.inject('feature', 'tESt', None).to_upper())], 
     'g_injectXfeature_test_nullX_toUpperXlocalX': [(lambda g, xx1=None:g.inject(xx1).to_upper(Scope.local))], 
-    'g_injectXfeature_test_nullX_asString_toUpper': [(lambda g:g.inject('feature','tESt',None).as_string().to_upper())], 
+    'g_injectXfeature_test_nullX_asString_toUpper': [(lambda g:g.inject('feature', 'tESt', None).as_string().to_upper())], 
     'g_injectXListXa_bXX_toUpper': [(lambda g, xx1=None:g.inject(xx1).to_upper())], 
-    'g_V_valuesXnameX_toUpper': [(lambda g:g.V().name.to_upper())], 
-    'g_V_valuesXnameX_toUpperXlocalX': [(lambda g:g.V().name.to_upper(Scope.local))], 
-    'g_V_valuesXnameX_order_fold_toUpperXlocalX': [(lambda g:g.V().name.order().fold().to_upper(Scope.local))], 
-    'g_injectX__feature___test__nullX_trim': [(lambda g:g.inject('  feature  ',' one test ',None,'',' ').trim())], 
+    'g_V_valuesXnameX_toUpper': [(lambda g:g.V().values('name').to_upper())], 
+    'g_V_valuesXnameX_toUpperXlocalX': [(lambda g:g.V().values('name').to_upper(Scope.local))], 
+    'g_V_valuesXnameX_order_fold_toUpperXlocalX': [(lambda g:g.V().values('name').order().fold().to_upper(Scope.local))], 
+    'g_injectX__feature___test__nullX_trim': [(lambda g:g.inject('  feature  ', ' one test ', None, '', ' ').trim())], 
     'g_injectXListXa_bXX_trim': [(lambda g, xx1=None:g.inject(xx1).trim())], 
     'g_injectXListX1_2XX_trimXlocalX': [(lambda g, xx1=None:g.inject(xx1).trim(Scope.local))], 
-    'g_V_valuesXnameX_trim': [(lambda g:g.addV('person').property('name',' marko ').property('age',29).as_('marko').addV('person').property('name','  vadas  ').property('age',27).as_('vadas').addV('software').property('name','  lop').property('lang','java').as_('lop').addV('person').property('name','josh  ').property('age',32).as_('josh').addV('software').property('name','   ripple   ').property('lang','java').as_('ripple').addV('person').property('name','peter').property('age',35).as_(' [...]
-    'g_V_valuesXnameX_order_fold_trimXlocalX': [(lambda g:g.addV('person').property('name',' marko ').property('age',29).as_('marko').addV('person').property('name','  vadas  ').property('age',27).as_('vadas').addV('software').property('name','  lop').property('lang','java').as_('lop').addV('person').property('name','josh  ').property('age',32).as_('josh').addV('software').property('name','   ripple   ').property('lang','java').as_('ripple').addV('person').property('name','peter').proper [...]
-    'g_V_localXoutE_foldX_unfold': [(lambda g:g.V().local(__.outE().fold()).unfold())], 
-    'g_V_valueMap_unfold_mapXkeyX': [(lambda g, l1=None:g.V().valueMap().unfold().map(l1))], 
-    'g_VX1X_repeatXboth_simplePathX_untilXhasIdX6XX_path_byXnameX_unfold': [(lambda g, vid6=None,vid1=None:g.V(vid1).repeat(__.both().simplePath()).until(__.hasId(vid6)).path().by('name').unfold())], 
-    'g_V_valueMap': [(lambda g:g.V().valueMap())], 
-    'g_V_valueMapXtrueX': [(lambda g:g.V().valueMap(True))], 
-    'g_V_valueMap_withXtokensX': [(lambda g:g.V().valueMap().with_('~tinkerpop.valueMap.tokens'))], 
-    'g_V_valueMapXname_ageX': [(lambda g:g.V().valueMap('name','age'))], 
-    'g_V_valueMapXtrue_name_ageX': [(lambda g:g.V().valueMap(True,'name','age'))], 
-    'g_V_valueMapXname_ageX_withXtokensX': [(lambda g:g.V().valueMap('name','age').with_('~tinkerpop.valueMap.tokens'))], 
-    'g_V_valueMapXname_ageX_withXtokens_labelsX_byXunfoldX': [(lambda g:g.V().valueMap('name','age').with_('~tinkerpop.valueMap.tokens',2).by(__.unfold()))], 
-    'g_V_valueMapXname_ageX_withXtokens_idsX_byXunfoldX': [(lambda g:g.V().valueMap('name','age').with_('~tinkerpop.valueMap.tokens',1).by(__.unfold()))], 
-    'g_VX1X_outXcreatedX_valueMap': [(lambda g, vid1=None:g.V(vid1).out('created').valueMap())], 
-    'g_V_hasLabelXpersonX_filterXoutEXcreatedXX_valueMapXtrueX': [(lambda g:g.V().hasLabel('person').filter_(__.outE('created')).valueMap(True))], 
-    'g_V_hasLabelXpersonX_filterXoutEXcreatedXX_valueMap_withXtokensX': [(lambda g:g.V().hasLabel('person').filter_(__.outE('created')).valueMap().with_('~tinkerpop.valueMap.tokens'))], 
-    'g_VX1X_valueMapXname_locationX_byXunfoldX_by': [(lambda g, vid1=None:g.V(vid1).valueMap('name','location').by(__.unfold()).by())], 
-    'g_V_valueMapXname_age_nullX': [(lambda g:g.V().valueMap('name','age',None))], 
-    'g_V_valueMapXname_ageX_byXisXxXXbyXunfoldX': [(lambda g:g.V().valueMap('name','age').by(__.is_('x')).by(__.unfold()))], 
+    'g_V_valuesXnameX_trim': [(lambda g:g.add_v('person').property('name', ' marko ').property('age', 29).as_('marko').add_v('person').property('name', '  vadas  ').property('age', 27).as_('vadas').add_v('software').property('name', '  lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh  ').property('age', 32).as_('josh').add_v('software').property('name', '   ripple   ').property('lang', 'java').as_('ripple').add_v('person').property('name', 'peter').propert [...]
+    'g_V_valuesXnameX_order_fold_trimXlocalX': [(lambda g:g.add_v('person').property('name', ' marko ').property('age', 29).as_('marko').add_v('person').property('name', '  vadas  ').property('age', 27).as_('vadas').add_v('software').property('name', '  lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh  ').property('age', 32).as_('josh').add_v('software').property('name', '   ripple   ').property('lang', 'java').as_('ripple').add_v('person').property('name' [...]
+    'g_V_localXoutE_foldX_unfold': [(lambda g:g.V().local(__.out_e().fold()).unfold())], 
+    'g_V_valueMap_unfold_mapXkeyX': [],  # skipping as it contains a lambda
+    'g_VX1X_repeatXboth_simplePathX_untilXhasIdX6XX_path_byXnameX_unfold': [(lambda g, vid6=None,vid1=None:g.V(vid1).repeat(__.both().simple_path()).until(__.has_id(vid6)).path().by('name').unfold())], 
+    'g_V_valueMap': [(lambda g:g.V().value_map())], 
+    'g_V_valueMapXtrueX': [(lambda g:g.V().value_map(True))], 
+    'g_V_valueMap_withXtokensX': [(lambda g:g.V().value_map().with_(WithOptions.tokens))], 
+    'g_V_valueMapXname_ageX': [(lambda g:g.V().value_map('name', 'age'))], 
+    'g_V_valueMapXtrue_name_ageX': [(lambda g:g.V().value_map(True, 'name', 'age'))], 
+    'g_V_valueMapXname_ageX_withXtokensX': [(lambda g:g.V().value_map('name', 'age').with_(WithOptions.tokens))], 
+    'g_V_valueMapXname_ageX_withXtokens_labelsX_byXunfoldX': [(lambda g:g.V().value_map('name', 'age').with_(WithOptions.tokens, WithOptions.labels).by(__.unfold()))], 
+    'g_V_valueMapXname_ageX_withXtokens_idsX_byXunfoldX': [(lambda g:g.V().value_map('name', 'age').with_(WithOptions.tokens, WithOptions.ids).by(__.unfold()))], 
+    'g_VX1X_outXcreatedX_valueMap': [(lambda g, vid1=None:g.V(vid1).out('created').value_map())], 
+    'g_V_hasLabelXpersonX_filterXoutEXcreatedXX_valueMapXtrueX': [(lambda g:g.V().has_label('person').filter_(__.out_e('created')).value_map(True))], 
+    'g_V_hasLabelXpersonX_filterXoutEXcreatedXX_valueMap_withXtokensX': [(lambda g:g.V().has_label('person').filter_(__.out_e('created')).value_map().with_(WithOptions.tokens))], 
+    'g_VX1X_valueMapXname_locationX_byXunfoldX_by': [(lambda g, vid1=None:g.V(vid1).value_map('name', 'location').by(__.unfold()).by())], 
+    'g_V_valueMapXname_age_nullX': [(lambda g:g.V().value_map('name', 'age', None))], 
+    'g_V_valueMapXname_ageX_byXisXxXXbyXunfoldX': [(lambda g:g.V().value_map('name', 'age').by(__.is_('x')).by(__.unfold()))], 
     'g_VXnullX': [(lambda g:g.V(None))], 
     'g_VXlistXnullXX': [(lambda g, xx1=None:g.V(xx1))], 
-    'g_VX1_nullX': [(lambda g, vid1=None:g.V(vid1,None))], 
-    'g_VXlistX1_2_3XX_name': [(lambda g, xx1=None:g.V(xx1).name)], 
-    'g_VXlistXv1_v2_v3XX_name': [(lambda g, xx1=None:g.V(xx1).name)], 
+    'g_VX1_nullX': [(lambda g, vid1=None:g.V(vid1, None))], 
+    'g_VXlistX1_2_3XX_name': [(lambda g, xx1=None:g.V(xx1).values('name'))], 
+    'g_VXlistXv1_v2_v3XX_name': [(lambda g, xx1=None:g.V(xx1).values('name'))], 
     'g_V': [(lambda g:g.V())], 
     'g_VXv1X_out': [(lambda g, v1=None:g.V(v1).out())], 
     'g_VX1X_out': [(lambda g, vid1=None:g.V(vid1).out())], 
@@ -1215,40 +1216,40 @@ world.gremlins = {
     'g_EX11X': [(lambda g, eid11=None:g.E(eid11))], 
     'g_EX11AsStringX': [(lambda g, eid11=None:g.E(eid11))], 
     'g_EXe11X': [(lambda g, e11=None:g.E(e11))], 
-    'g_EXe7_e11X': [(lambda g, e7=None,e11=None:g.E(e7,e11))], 
+    'g_EXe7_e11X': [(lambda g, e7=None,e11=None:g.E(e7, e11))], 
     'g_EXlistXe7_e11XX': [(lambda g, xx1=None:g.E(xx1))], 
     'g_EXnullX': [(lambda g:g.E(None))], 
     'g_EXlistXnullXX': [(lambda g, xx1=None:g.E(xx1))], 
-    'g_EX11_nullX': [(lambda g, eid11=None:g.E(eid11,None))], 
-    'g_VX1X_outE': [(lambda g, vid1=None:g.V(vid1).outE())], 
-    'g_VX2X_outE': [(lambda g, vid2=None:g.V(vid2).inE())], 
-    'g_VX4X_bothEXcreatedX': [(lambda g, vid4=None:g.V(vid4).bothE('created'))], 
-    'g_VX4X_bothE': [(lambda g, vid4=None:g.V(vid4).bothE())], 
+    'g_EX11_nullX': [(lambda g, eid11=None:g.E(eid11, None))], 
+    'g_VX1X_outE': [(lambda g, vid1=None:g.V(vid1).out_e())], 
+    'g_VX2X_outE': [(lambda g, vid2=None:g.V(vid2).in_e())], 
+    'g_VX4X_bothEXcreatedX': [(lambda g, vid4=None:g.V(vid4).both_e('created'))], 
+    'g_VX4X_bothE': [(lambda g, vid4=None:g.V(vid4).both_e())], 
     'g_VX1X_outE_inV': [(lambda g, vid1=None:g.V(vid1).both())], 
-    'g_VX2X_inE_outV': [(lambda g, vid2=None:g.V(vid2).inE().out_v())], 
-    'g_V_outE_hasXweight_1X_outV': [(lambda g:g.V().outE().has('weight',float(1.0)).out_v())], 
-    'g_V_out_outE_inV_inE_inV_both_name': [(lambda g:g.V().out().outE().in_v().inE().in_v().both().name)], 
-    'g_VX1X_outEXknowsX_bothV_name': [(lambda g, vid1=None:g.V(vid1).outE('knows').bothV().name)], 
-    'g_VX1X_outE_otherV': [(lambda g, vid1=None:g.V(vid1).outE().otherV())], 
-    'g_VX4X_bothE_otherV': [(lambda g, vid4=None:g.V(vid4).bothE().otherV())], 
-    'g_VX4X_bothE_hasXweight_lt_1X_otherV': [(lambda g, vid4=None:g.V(vid4).bothE().has('weight',P.lt(float(1.0))).otherV())], 
-    'g_VX2X_inE': [(lambda g, vid2=None:g.V(vid2).bothE())], 
-    'get_g_VX1X_outE_otherV': [(lambda g, vid1=None:g.V(vid1).outE().otherV())], 
+    'g_VX2X_inE_outV': [(lambda g, vid2=None:g.V(vid2).in_e().out_v())], 
+    'g_V_outE_hasXweight_1X_outV': [(lambda g:g.V().out_e().has('weight', 1.0).out_v())], 
+    'g_V_out_outE_inV_inE_inV_both_name': [(lambda g:g.V().out().out_e().in_v().in_e().in_v().both().values('name'))], 
+    'g_VX1X_outEXknowsX_bothV_name': [(lambda g, vid1=None:g.V(vid1).out_e('knows').both_v().values('name'))], 
+    'g_VX1X_outE_otherV': [(lambda g, vid1=None:g.V(vid1).out_e().other_v())], 
+    'g_VX4X_bothE_otherV': [(lambda g, vid4=None:g.V(vid4).both_e().other_v())], 
+    'g_VX4X_bothE_hasXweight_lt_1X_otherV': [(lambda g, vid4=None:g.V(vid4).both_e().has('weight', P.lt(1.0)).other_v())], 
+    'g_VX2X_inE': [(lambda g, vid2=None:g.V(vid2).both_e())], 
+    'get_g_VX1X_outE_otherV': [(lambda g, vid1=None:g.V(vid1).out_e().other_v())], 
     'g_VX1X_outXknowsX': [(lambda g, vid1=None:g.V(vid1).out('knows'))], 
     'g_VX1AsStringX_outXknowsX': [(lambda g, vid1=None:g.V(vid1).out('knows'))], 
-    'g_VX1X_outXknows_createdX': [(lambda g, vid1=None:g.V(vid1).out('knows','created'))], 
-    'g_VX1X_outEXknowsX_inV': [(lambda g, vid1=None:g.V(vid1).outE('knows').in_v())], 
-    'g_VX1X_outEXknows_createdX_inV': [(lambda g, vid1=None:g.V(vid1).outE('knows','created').in_v())], 
+    'g_VX1X_outXknows_createdX': [(lambda g, vid1=None:g.V(vid1).out('knows', 'created'))], 
+    'g_VX1X_outEXknowsX_inV': [(lambda g, vid1=None:g.V(vid1).out_e('knows').in_v())], 
+    'g_VX1X_outEXknows_createdX_inV': [(lambda g, vid1=None:g.V(vid1).out_e('knows', 'created').in_v())], 
     'g_V_out_out': [(lambda g:g.V().out().out())], 
     'g_VX1X_out_out_out': [(lambda g, vid1=None:g.V(vid1).out().out().out())], 
-    'g_VX1X_out_name': [(lambda g, vid1=None:g.V(vid1).out().name)], 
-    'g_VX1X_to_XOUT_knowsX': [(lambda g, vid1=None:g.V(vid1).to(Direction.OUT,'knows'))], 
-    'g_VX1_2_3_4X_name': [(lambda g, vid4=None,vid3=None,vid2=None,vid1=None:g.addV('person').property('name','marko').property('age',29).as_('marko').addV('person').property('name','vadas').property('age',27).as_('vadas').addV('software').property('name','lop').property('lang','java').as_('lop').addV('person').property('name','josh').property('age',32).as_('josh').addV('software').property('name','ripple').property('lang','java').as_('ripple').addV('person').property('name','peter').pro [...]
-    'g_V_hasLabelXpersonX_V_hasLabelXsoftwareX_name': [(lambda g:g.V().hasLabel('person').V().hasLabel('software').name)], 
-    'g_V_hasLabelXloopsX_bothEXselfX': [(lambda g:g.V().hasLabel('loops').bothE('self'))], 
-    'g_V_hasLabelXloopsX_bothXselfX': [(lambda g:g.V().hasLabel('loops').both('self'))], 
+    'g_VX1X_out_name': [(lambda g, vid1=None:g.V(vid1).out().values('name'))], 
+    'g_VX1X_to_XOUT_knowsX': [(lambda g, vid1=None:g.V(vid1).to(Direction.OUT, 'knows'))], 
+    'g_VX1_2_3_4X_name': [(lambda g, vid4=None,vid3=None,vid2=None,vid1=None:g.add_v('person').property('name', 'marko').property('age', 29).as_('marko').add_v('person').property('name', 'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 'josh').property('age', 32).as_('josh').add_v('software').property('name', 'ripple').property('lang', 'java').as_('ripple').add_v('person').property('na [...]
+    'g_V_hasLabelXpersonX_V_hasLabelXsoftwareX_name': [(lambda g:g.V().has_label('person').V().has_label('software').values('name'))], 
+    'g_V_hasLabelXloopsX_bothEXselfX': [(lambda g:g.V().has_label('loops').both_e('self'))], 
+    'g_V_hasLabelXloopsX_bothXselfX': [(lambda g:g.V().has_label('loops').both('self'))], 
     'g_injectX1X_VXnullX': [(lambda g:g.inject(1).V(None))], 
-    'g_injectX1X_VX1_nullX': [(lambda g, vid1=None:g.inject(1).V(vid1,None))], 
+    'g_injectX1X_VX1_nullX': [(lambda g, vid1=None:g.inject(1).V(vid1, None))], 
     'InjectXnullX_eqXnullX': [(lambda g:g.inject(None).is_(P.eq(None)))], 
     'InjectXnullX_neqXnullX': [(lambda g:g.inject(None).is_(P.neq(None)))], 
     'InjectXnullX_ltXnullX': [(lambda g:g.inject(None).is_(P.lt(None)))], 
@@ -1261,70 +1262,70 @@ world.gremlins = {
     'InjectXNaNX_lteXNaNX': [(lambda g, xx1=None:g.inject(xx1).is_(P.lte(float('nan'))))], 
     'InjectXNaNX_gtXNaNX': [(lambda g, xx1=None:g.inject(xx1).is_(P.gt(float('nan'))))], 
     'InjectXNaNX_gteXNaNX': [(lambda g, xx1=None:g.inject(xx1).is_(P.gte(float('nan'))))], 
-    'InjectX1dX_eqXNaNX': [(lambda g:g.inject(float(1.0)).is_(P.eq(float('nan'))))], 
-    'InjectX1dX_neqXNaNX': [(lambda g:g.inject(float(1.0)).is_(P.neq(float('nan'))))], 
-    'InjectX1dX_ltXNaNX': [(lambda g:g.inject(float(1.0)).is_(P.lt(float('nan'))))], 
-    'InjectX1dX_lteXNaNX': [(lambda g:g.inject(float(1.0)).is_(P.lte(float('nan'))))], 
-    'InjectX1dX_gtXNaNX': [(lambda g:g.inject(float(1.0)).is_(P.gt(float('nan'))))], 
-    'InjectX1dX_gteXNaNX': [(lambda g:g.inject(float(1.0)).is_(P.gte(float('nan'))))], 
+    'InjectX1dX_eqXNaNX': [(lambda g:g.inject(1.0).is_(P.eq(float('nan'))))], 
+    'InjectX1dX_neqXNaNX': [(lambda g:g.inject(1.0).is_(P.neq(float('nan'))))], 
+    'InjectX1dX_ltXNaNX': [(lambda g:g.inject(1.0).is_(P.lt(float('nan'))))], 
+    'InjectX1dX_lteXNaNX': [(lambda g:g.inject(1.0).is_(P.lte(float('nan'))))], 
+    'InjectX1dX_gtXNaNX': [(lambda g:g.inject(1.0).is_(P.gt(float('nan'))))], 
+    'InjectX1dX_gteXNaNX': [(lambda g:g.inject(1.0).is_(P.gte(float('nan'))))], 
     'InjectXNaNX_eqXnullX': [(lambda g:g.inject(float('nan')).is_(P.eq(None)))], 
     'InjectXNaNX_neqXnullX': [(lambda g:g.inject(float('nan')).is_(P.neq(None)))], 
     'InjectXNaNX_ltXnullX': [(lambda g:g.inject(float('nan')).is_(P.lt(None)))], 
     'InjectXNaNX_lteXnullX': [(lambda g:g.inject(float('nan')).is_(P.lte(None)))], 
     'InjectXNaNX_gtXnullX': [(lambda g:g.inject(float('nan')).is_(P.gt(None)))], 
     'InjectXNaNX_gteXnullX': [(lambda g:g.inject(float('nan')).is_(P.gte(None)))], 
-    'InjectXfooX_eqX1dX': [(lambda g:g.inject('foo').is_(P.eq(float(1.0))))], 
-    'InjectXfooX_neqX1dX': [(lambda g:g.inject('foo').is_(P.neq(float(1.0))))], 
-    'InjectXfooX_ltX1dX': [(lambda g:g.inject('foo').is_(P.lt(float(1.0))))], 
-    'InjectXfooX_lteX1dX': [(lambda g:g.inject('foo').is_(P.lte(float(1.0))))], 
-    'InjectXfooX_gtX1dX': [(lambda g:g.inject('foo').is_(P.gt(float(1.0))))], 
-    'InjectXfooX_gteX1dX': [(lambda g:g.inject('foo').is_(P.gte(float(1.0))))], 
-    'InjectX1dX_eqXfooX': [(lambda g:g.inject(float(1.0)).is_(P.eq('foo')))], 
-    'InjectX1dX_neqXfooX': [(lambda g:g.inject(float(1.0)).is_(P.neq('foo')))], 
-    'InjectX1dX_ltXfooX': [(lambda g:g.inject(float(1.0)).is_(P.lt('foo')))], 
-    'InjectX1dX_lteXfooX': [(lambda g:g.inject(float(1.0)).is_(P.lte('foo')))], 
-    'InjectX1dX_gtXfooX': [(lambda g:g.inject(float(1.0)).is_(P.gt('foo')))], 
-    'InjectX1dX_gteXfooX': [(lambda g:g.inject(float(1.0)).is_(P.gte('foo')))], 
-    'InjectX1dX_andXtrue_trueX': [(lambda g:g.inject(float(1.0)).and_(__.is_(P.eq(1)),__.is_(P.gt(0))))], 
-    'InjectX1dX_isXtrue_trueX': [(lambda g:g.inject(float(1.0)).is_(P.eq(1).and_(P.gt(0))))], 
-    'InjectX1dX_andXtrue_falseX': [(lambda g:g.inject(float(1.0)).and_(__.is_(P.eq(1)),__.is_(P.lt(0))))], 
-    'InjectX1dX_isXtrue_falseX': [(lambda g:g.inject(float(1.0)).is_(P.eq(1).and_(P.lt(0))))], 
-    'InjectX1dX_andXtrue_errorX': [(lambda g:g.inject(float(1.0)).and_(__.is_(P.eq(1)),__.is_(P.lt(float('nan')))))], 
-    'InjectX1dX_isXtrue_errorX': [(lambda g:g.inject(float(1.0)).is_(P.eq(1).and_(P.lt(float('nan')))))], 
-    'InjectX1dX_andXfalse_trueX': [(lambda g:g.inject(float(1.0)).and_(__.is_(P.neq(1)),__.is_(P.gt(0))))], 
-    'InjectX1dX_isXfalse_trueX': [(lambda g:g.inject(float(1.0)).is_(P.neq(1).and_(P.gt(0))))], 
-    'InjectX1dX_andXfalse_falseX': [(lambda g:g.inject(float(1.0)).and_(__.is_(P.neq(1)),__.is_(P.lt(0))))], 
-    'InjectX1dX_isXfalse_falseX': [(lambda g:g.inject(float(1.0)).is_(P.neq(1).and_(P.lt(0))))], 
-    'InjectX1dX_andXfalse_errorX': [(lambda g:g.inject(float(1.0)).and_(__.is_(P.neq(1)),__.is_(P.lt(float('nan')))))], 
-    'InjectX1dX_isXfalse_errorX': [(lambda g:g.inject(float(1.0)).is_(P.neq(1).and_(P.lt(float('nan')))))], 
-    'InjectX1dX_andXerror_trueX': [(lambda g:g.inject(float(1.0)).and_(__.is_(P.lt(float('nan'))),__.is_(P.gt(0))))], 
-    'InjectX1dX_isXerror_trueX': [(lambda g:g.inject(float(1.0)).is_(P.lt(float('nan')).and_(P.gt(0))))], 
-    'InjectX1dX_andXerror_falseX': [(lambda g:g.inject(float(1.0)).and_(__.is_(P.lt(float('nan'))),__.is_(P.gt(2))))], 
-    'InjectX1dX_isXerror_falseX': [(lambda g:g.inject(float(1.0)).is_(P.lt(float('nan')).and_(P.gt(2))))], 
-    'InjectX1dX_andXerror_errorX': [(lambda g:g.inject(float(1.0)).and_(__.is_(P.lt(float('nan'))),__.is_(P.gt(float('nan')))))], 
-    'InjectX1dX_isXerror_errorX': [(lambda g:g.inject(float(1.0)).is_(P.lt(float('nan')).and_(P.gt(float('nan')))))], 
-    'InjectX1dX_orXtrue_trueX': [(lambda g:g.inject(float(1.0)).or_(__.is_(P.eq(1)),__.is_(P.gt(0))))], 
-    'InjectX1dX_isXtrue_or_trueX': [(lambda g:g.inject(float(1.0)).is_(P.eq(1).or_(P.gt(0))))], 
-    'InjectX1dX_orXtrue_falseX': [(lambda g:g.inject(float(1.0)).or_(__.is_(P.eq(1)),__.is_(P.lt(0))))], 
-    'InjectX1dX_isXtrue_or_falseX': [(lambda g:g.inject(float(1.0)).is_(P.eq(1).or_(P.lt(0))))], 
-    'InjectX1dX_orXtrue_errorX': [(lambda g:g.inject(float(1.0)).or_(__.is_(P.eq(1)),__.is_(P.lt(float('nan')))))], 
-    'InjectX1dX_isXtrue_or_errorX': [(lambda g:g.inject(float(1.0)).is_(P.eq(1).or_(P.lt(float('nan')))))], 
-    'InjectX1dX_orXfalse_trueX': [(lambda g:g.inject(float(1.0)).or_(__.is_(P.neq(1)),__.is_(P.gt(0))))], 
-    'InjectX1dX_isXfalse_or_trueX': [(lambda g:g.inject(float(1.0)).is_(P.neq(1).or_(P.gt(0))))], 
-    'InjectX1dX_orXfalse_falseX': [(lambda g:g.inject(float(1.0)).or_(__.is_(P.neq(1)),__.is_(P.lt(0))))], 
-    'InjectX1dX_isXfalse_or_falseX': [(lambda g:g.inject(float(1.0)).is_(P.neq(1).or_(P.lt(0))))], 
-    'InjectX1dX_orXfalse_errorX': [(lambda g:g.inject(float(1.0)).or_(__.is_(P.neq(1)),__.is_(P.lt(float('nan')))))], 
-    'InjectX1dX_isXfalse_or_errorX': [(lambda g:g.inject(float(1.0)).is_(P.neq(1).or_(P.lt(float('nan')))))], 
-    'InjectX1dX_orXerror_trueX': [(lambda g:g.inject(float(1.0)).or_(__.is_(P.lt(float('nan'))),__.is_(P.gt(0))))], 
-    'InjectX1dX_isXerror_or_trueX': [(lambda g:g.inject(float(1.0)).is_(P.lt(float('nan')).or_(P.gt(0))))], 
-    'InjectX1dX_orXerror_falseX': [(lambda g:g.inject(float(1.0)).or_(__.is_(P.lt(float('nan'))),__.is_(P.gt(2))))], 
-    'InjectX1dX_isXerror_or_falseX': [(lambda g:g.inject(float(1.0)).is_(P.lt(float('nan')).or_(P.gt(2))))], 
-    'InjectX1dX_orXerror_errorX': [(lambda g:g.inject(float(1.0)).or_(__.is_(P.lt(float('nan'))),__.is_(P.gt(float('nan')))))], 
-    'InjectX1dX_isXerror_or_errorX': [(lambda g:g.inject(float(1.0)).is_(P.lt(float('nan')).or_(P.gt(float('nan')))))], 
-    'InjectX1dX_notXtrueX': [(lambda g:g.inject(float(1.0)).not_(__.is_(P.gt(0))))], 
-    'InjectX1dX_notXfalseX': [(lambda g:g.inject(float(1.0)).not_(__.is_(P.lt(0))))], 
-    'InjectX1dX_notXerrorX': [(lambda g:g.inject(float(1.0)).not_(__.is_(P.gt(float('nan')))))], 
-    'InjectX1dX_notXisXeqXNaNXXX': [(lambda g:g.inject(float(1.0)).not_(__.is_(P.eq(float('nan')))))], 
+    'InjectXfooX_eqX1dX': [(lambda g:g.inject('foo').is_(P.eq(1.0)))], 
+    'InjectXfooX_neqX1dX': [(lambda g:g.inject('foo').is_(P.neq(1.0)))], 
+    'InjectXfooX_ltX1dX': [(lambda g:g.inject('foo').is_(P.lt(1.0)))], 
+    'InjectXfooX_lteX1dX': [(lambda g:g.inject('foo').is_(P.lte(1.0)))], 
+    'InjectXfooX_gtX1dX': [(lambda g:g.inject('foo').is_(P.gt(1.0)))], 
+    'InjectXfooX_gteX1dX': [(lambda g:g.inject('foo').is_(P.gte(1.0)))], 
+    'InjectX1dX_eqXfooX': [(lambda g:g.inject(1.0).is_(P.eq('foo')))], 
+    'InjectX1dX_neqXfooX': [(lambda g:g.inject(1.0).is_(P.neq('foo')))], 
+    'InjectX1dX_ltXfooX': [(lambda g:g.inject(1.0).is_(P.lt('foo')))], 
+    'InjectX1dX_lteXfooX': [(lambda g:g.inject(1.0).is_(P.lte('foo')))], 
+    'InjectX1dX_gtXfooX': [(lambda g:g.inject(1.0).is_(P.gt('foo')))], 
+    'InjectX1dX_gteXfooX': [(lambda g:g.inject(1.0).is_(P.gte('foo')))], 
+    'InjectX1dX_andXtrue_trueX': [(lambda g:g.inject(1).and_(__.is_(P.eq(1)), __.is_(P.gt(0))))], 
+    'InjectX1dX_isXtrue_trueX': [(lambda g:g.inject(1).is_(P.eq(1).and_(P.gt(0))))], 
+    'InjectX1dX_andXtrue_falseX': [(lambda g:g.inject(1).and_(__.is_(P.eq(1)), __.is_(P.lt(0))))], 
+    'InjectX1dX_isXtrue_falseX': [(lambda g:g.inject(1).is_(P.eq(1).and_(P.lt(0))))], 
+    'InjectX1dX_andXtrue_errorX': [(lambda g:g.inject(1).and_(__.is_(P.eq(1)), __.is_(P.lt(float('nan')))))], 
+    'InjectX1dX_isXtrue_errorX': [(lambda g:g.inject(1).is_(P.eq(1).and_(P.lt(float('nan')))))], 
+    'InjectX1dX_andXfalse_trueX': [(lambda g:g.inject(1).and_(__.is_(P.neq(1)), __.is_(P.gt(0))))], 
+    'InjectX1dX_isXfalse_trueX': [(lambda g:g.inject(1).is_(P.neq(1).and_(P.gt(0))))], 
+    'InjectX1dX_andXfalse_falseX': [(lambda g:g.inject(1).and_(__.is_(P.neq(1)), __.is_(P.lt(0))))], 
+    'InjectX1dX_isXfalse_falseX': [(lambda g:g.inject(1).is_(P.neq(1).and_(P.lt(0))))], 
+    'InjectX1dX_andXfalse_errorX': [(lambda g:g.inject(1).and_(__.is_(P.neq(1)), __.is_(P.lt(float('nan')))))], 
+    'InjectX1dX_isXfalse_errorX': [(lambda g:g.inject(1).is_(P.neq(1).and_(P.lt(float('nan')))))], 
+    'InjectX1dX_andXerror_trueX': [(lambda g:g.inject(1).and_(__.is_(P.lt(float('nan'))), __.is_(P.gt(0))))], 
+    'InjectX1dX_isXerror_trueX': [(lambda g:g.inject(1).is_(P.lt(float('nan')).and_(P.gt(0))))], 
+    'InjectX1dX_andXerror_falseX': [(lambda g:g.inject(1).and_(__.is_(P.lt(float('nan'))), __.is_(P.gt(2))))], 
+    'InjectX1dX_isXerror_falseX': [(lambda g:g.inject(1).is_(P.lt(float('nan')).and_(P.gt(2))))], 
+    'InjectX1dX_andXerror_errorX': [(lambda g:g.inject(1).and_(__.is_(P.lt(float('nan'))), __.is_(P.gt(float('nan')))))], 
+    'InjectX1dX_isXerror_errorX': [(lambda g:g.inject(1).is_(P.lt(float('nan')).and_(P.gt(float('nan')))))], 
+    'InjectX1dX_orXtrue_trueX': [(lambda g:g.inject(1).or_(__.is_(P.eq(1)), __.is_(P.gt(0))))], 
+    'InjectX1dX_isXtrue_or_trueX': [(lambda g:g.inject(1).is_(P.eq(1).or_(P.gt(0))))], 
+    'InjectX1dX_orXtrue_falseX': [(lambda g:g.inject(1).or_(__.is_(P.eq(1)), __.is_(P.lt(0))))], 
+    'InjectX1dX_isXtrue_or_falseX': [(lambda g:g.inject(1).is_(P.eq(1).or_(P.lt(0))))], 
+    'InjectX1dX_orXtrue_errorX': [(lambda g:g.inject(1).or_(__.is_(P.eq(1)), __.is_(P.lt(float('nan')))))], 
+    'InjectX1dX_isXtrue_or_errorX': [(lambda g:g.inject(1).is_(P.eq(1).or_(P.lt(float('nan')))))], 
+    'InjectX1dX_orXfalse_trueX': [(lambda g:g.inject(1).or_(__.is_(P.neq(1)), __.is_(P.gt(0))))], 
+    'InjectX1dX_isXfalse_or_trueX': [(lambda g:g.inject(1).is_(P.neq(1).or_(P.gt(0))))], 
+    'InjectX1dX_orXfalse_falseX': [(lambda g:g.inject(1).or_(__.is_(P.neq(1)), __.is_(P.lt(0))))], 
+    'InjectX1dX_isXfalse_or_falseX': [(lambda g:g.inject(1).is_(P.neq(1).or_(P.lt(0))))], 
+    'InjectX1dX_orXfalse_errorX': [(lambda g:g.inject(1).or_(__.is_(P.neq(1)), __.is_(P.lt(float('nan')))))], 
+    'InjectX1dX_isXfalse_or_errorX': [(lambda g:g.inject(1).is_(P.neq(1).or_(P.lt(float('nan')))))], 
+    'InjectX1dX_orXerror_trueX': [(lambda g:g.inject(1).or_(__.is_(P.lt(float('nan'))), __.is_(P.gt(0))))], 
+    'InjectX1dX_isXerror_or_trueX': [(lambda g:g.inject(1).is_(P.lt(float('nan')).or_(P.gt(0))))], 
+    'InjectX1dX_orXerror_falseX': [(lambda g:g.inject(1).or_(__.is_(P.lt(float('nan'))), __.is_(P.gt(2))))], 
+    'InjectX1dX_isXerror_or_falseX': [(lambda g:g.inject(1).is_(P.lt(float('nan')).or_(P.gt(2))))], 
+    'InjectX1dX_orXerror_errorX': [(lambda g:g.inject(1).or_(__.is_(P.lt(float('nan'))), __.is_(P.gt(float('nan')))))], 
+    'InjectX1dX_isXerror_or_errorX': [(lambda g:g.inject(1).is_(P.lt(float('nan')).or_(P.gt(float('nan')))))], 
+    'InjectX1dX_notXtrueX': [(lambda g:g.inject(1).not_(__.is_(P.gt(0))))], 
+    'InjectX1dX_notXfalseX': [(lambda g:g.inject(1).not_(__.is_(P.lt(0))))], 
+    'InjectX1dX_notXerrorX': [(lambda g:g.inject(1).not_(__.is_(P.gt(float('nan')))))], 
+    'InjectX1dX_notXisXeqXNaNXXX': [(lambda g:g.inject(1).not_(__.is_(P.eq(float('nan')))))], 
     'InjectXInfX_eqXInfX': [(lambda g:g.inject(float('inf')).is_(P.eq(float('inf'))))], 
     'InjectXInfArgX_eqXInfX': [(lambda g, xx1=None:g.inject(xx1).is_(P.eq(float('inf'))))], 
     'InjectXInfX_neqXInfX': [(lambda g:g.inject(float('inf')).is_(P.neq(float('inf'))))], 
@@ -1350,111 +1351,111 @@ world.gremlins = {
     'g_V_properties_order_id': [(lambda g:g.V().properties().order().id_())], 
     'g_E_properties_order_value': [(lambda g:g.E().properties().order().value())], 
     'g_E_properties_order_byXdescX_value': [(lambda g:g.E().properties().order().by(Order.desc).value())], 
-    'g_inject_order': [(lambda g, xx10=None,xx1=None,xx3=None,xx2=None,xx5=None,xx4=None,xx7=None,xx6=None,xx9=None,xx11=None,xx8=None,xx12=None,xx13=None,xx14=None,xx15=None:g.inject(xx8,xx7,xx10,xx4,xx9,xx12,xx1,xx5,xx11,xx6,xx3,xx2,xx13,xx14,xx15).order())], 
-    'g_inject_order_byXdescX': [(lambda g, xx10=None,xx1=None,xx3=None,xx2=None,xx5=None,xx4=None,xx7=None,xx6=None,xx9=None,xx11=None,xx8=None,xx12=None,xx13=None,xx14=None,xx15=None:g.inject(xx8,xx7,xx10,xx4,xx9,xx12,xx1,xx5,xx11,xx6,xx3,xx2,xx13,xx14,xx15).order().by(Order.desc))], 
+    'g_inject_order': [(lambda g, xx10=None,xx1=None,xx3=None,xx2=None,xx5=None,xx4=None,xx7=None,xx6=None,xx9=None,xx11=None,xx8=None,xx12=None,xx13=None,xx14=None,xx15=None:g.inject(xx8, xx7, xx10, xx4, xx9, xx12, xx1, xx5, xx11, xx6, xx3, xx2, xx13, xx14, xx15).order())], 
+    'g_inject_order_byXdescX': [(lambda g, xx10=None,xx1=None,xx3=None,xx2=None,xx5=None,xx4=None,xx7=None,xx6=None,xx9=None,xx11=None,xx8=None,xx12=None,xx13=None,xx14=None,xx15=None:g.inject(xx8, xx7, xx10, xx4, xx9, xx12, xx1, xx5, xx11, xx6, xx3, xx2, xx13, xx14, xx15).order().by(Order.desc))], 
     'g_V_out_out_order_byXascX': [(lambda g:g.V().out().out().order().by(Order.asc))], 
     'g_V_out_out_order_byXdescX': [(lambda g:g.V().out().out().order().by(Order.desc))], 
     'g_V_out_out_asXheadX_path_order_byXascX_selectXheadX': [(lambda g:g.V().out().out().as_('head').path().order().by(Order.asc).select('head'))], 
     'g_V_out_out_asXheadX_path_order_byXdescX_selectXheadX': [(lambda g:g.V().out().out().as_('head').path().order().by(Order.desc).select('head'))], 
-    'g_V_out_outE_order_byXascX': [(lambda g:g.V().out().outE().order().by(Order.asc))], 
-    'g_V_out_outE_order_byXdescX': [(lambda g:g.V().out().outE().order().by(Order.desc))], 
-    'g_V_out_outE_asXheadX_path_order_byXascX_selectXheadX': [(lambda g:g.V().out().outE().as_('head').path().order().by(Order.asc).select('head'))], 
-    'g_V_out_outE_asXheadX_path_order_byXdescX_selectXheadX': [(lambda g:g.V().out().outE().as_('head').path().order().by(Order.desc).select('head'))], 
+    'g_V_out_outE_order_byXascX': [(lambda g:g.V().out().out_e().order().by(Order.asc))], 
+    'g_V_out_outE_order_byXdescX': [(lambda g:g.V().out().out_e().order().by(Order.desc))], 
+    'g_V_out_outE_asXheadX_path_order_byXascX_selectXheadX': [(lambda g:g.V().out().out_e().as_('head').path().order().by(Order.asc).select('head'))], 
+    'g_V_out_outE_asXheadX_path_order_byXdescX_selectXheadX': [(lambda g:g.V().out().out_e().as_('head').path().order().by(Order.desc).select('head'))], 
     'g_V_out_out_properties_asXheadX_path_order_byXascX_selectXheadX_value': [(lambda g:g.V().out().out().properties().as_('head').path().order().by(Order.asc).select('head').value())], 
     'g_V_out_out_properties_asXheadX_path_order_byXdescX_selectXheadX_value': [(lambda g:g.V().out().out().properties().as_('head').path().order().by(Order.desc).select('head').value())], 
     'g_V_out_out_values_asXheadX_path_order_byXascX_selectXheadX': [(lambda g:g.V().out().out().values().as_('head').path().order().by(Order.asc).select('head'))], 
     'g_V_out_out_values_asXheadX_path_order_byXdescX_selectXheadX': [(lambda g:g.V().out().out().values().as_('head').path().order().by(Order.desc).select('head'))], 
-    'g_V_valueXnameX_aggregateXxX_capXxX': [(lambda g:g.V().name.aggregate('x').cap('x'))], 
-    'g_V_valueXnameX_aggregateXglobal_xX_capXxX': [(lambda g:g.V().name.aggregate(Scope.global_,'x').cap('x'))], 
+    'g_V_valueXnameX_aggregateXxX_capXxX': [(lambda g:g.V().values('name').aggregate('x').cap('x'))], 
+    'g_V_valueXnameX_aggregateXglobal_xX_capXxX': [(lambda g:g.V().values('name').aggregate(Scope.global_, 'x').cap('x'))], 
     'g_V_aggregateXxX_byXnameX_capXxX': [(lambda g:g.V().aggregate('x').by('name').cap('x'))], 
     'g_V_out_aggregateXaX_path': [(lambda g:g.V().out().aggregate('a').path())], 
-    'g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX': [(lambda g:g.V().hasLabel('person').aggregate('x').by('age').cap('x').as_('y').select('y'))], 
+    'g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX': [(lambda g:g.V().has_label('person').aggregate('x').by('age').cap('x').as_('y').select('y'))], 
     'g_V_aggregateXxX_byXageX_capXxX': [(lambda g:g.V().aggregate('x').by('age').cap('x'))], 
-    'g_V_aggregateXlocal_xX_byXageX_capXxX': [(lambda g:g.V().aggregate(Scope.local,'x').by('age').cap('x'))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate(Scope.local,'x').by('age').cap('x'))], 
-    'g_V_aggregateXlocal_a_nameX_out_capXaX': [(lambda g:g.V().aggregate(Scope.local,'a').by('name').out().cap('a'))], 
-    'g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX': [(lambda g, vid1=None:g.V(vid1).aggregate(Scope.local,'a').by('name').out().aggregate(Scope.local,'a').by('name').name.cap('a'))], 
-    'g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX': [(lambda g, xx1=None:g.withSideEffect('a',xx1).V().both().name.aggregate(Scope.local,'a').cap('a'))], 
-    'g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX': [(lambda g:g.V().aggregate(Scope.local,'a').by(__.outE('created').count()).out().out().aggregate(Scope.local,'a').by(__.inE('created').weight.sum_()).cap('a'))], 
-    'g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX': [(lambda g:g.V().aggregate('x').by(__.age.is_(P.gt(29))).cap('x'))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('x').by(__.age.is_(P.gt(29))).cap('x'))], 
+    'g_V_aggregateXlocal_xX_byXageX_capXxX': [(lambda g:g.V().aggregate(Scope.local, 'x').by('age').cap('x'))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate(Scope.local, 'x').by('age').cap('x'))], 
+    'g_V_aggregateXlocal_a_nameX_out_capXaX': [(lambda g:g.V().aggregate(Scope.local, 'a').by('name').out().cap('a'))], 
+    'g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX': [(lambda g, vid1=None:g.V(vid1).aggregate(Scope.local, 'a').by('name').out().aggregate(Scope.local, 'a').by('name').values('name').cap('a'))], 
+    'g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX': [(lambda g, xx1=None:g.with_side_effect('a', xx1).V().both().values('name').aggregate(Scope.local, 'a').cap('a'))], 
+    'g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX': [(lambda g:g.V().aggregate(Scope.local, 'a').by(__.out_e('created').count()).out().out().aggregate(Scope.local, 'a').by(__.in_e('created').values('weight').sum_()).cap('a'))], 
+    'g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX': [(lambda g:g.V().aggregate('x').by(__.values('age').is_(P.gt(29))).cap('x'))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('x').by(__.values('age').is_(P.gt(29))).cap('x'))], 
     'g_V_aggregateXxX_byXout_order_byXnameXX_capXxX': [(lambda g:g.V().aggregate('x').by(__.out().order().by('name')).cap('x'))], 
-    'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('x').by(__.out().order().by('name')).cap('x'))], 
+    'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('x').by(__.out().order().by('name')).cap('x'))], 
     'g_V_fail': [(lambda g:g.V().fail())], 
     'g_V_failXmsgX': [(lambda g:g.V().fail('msg'))], 
-    'g_V_unionXout_failX': [(lambda g:g.V().union(__.out(),__.fail()))], 
+    'g_V_unionXout_failX': [(lambda g:g.V().union(__.out(), __.fail()))], 
     'g_V_group_byXnameX': [(lambda g:g.V().group().by('name'))], 
     'g_V_group_byXageX': [(lambda g:g.V().group().by('age'))], 
-    'g_withStrategiesXProductiveByStrategyX_V_group_byXageX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().group().by('age'))], 
+    'g_withStrategiesXProductiveByStrategyX_V_group_byXageX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().group().by('age'))], 
     'g_V_group_byXnameX_byXageX': [(lambda g:g.V().group().by('name').by('age'))], 
     'g_V_group_byXnameX_by': [(lambda g:g.V().group().by('name').by())], 
     'g_V_hasXlangX_group_byXlangX_byXcountX': [(lambda g:g.V().has('lang').group().by('lang').by(__.count()))], 
-    'g_V_group_byXoutE_countX_byXnameX': [(lambda g:g.V().order().by('name').group().by(__.outE().count()).by('name'))], 
+    'g_V_group_byXoutE_countX_byXnameX': [(lambda g:g.V().order().by('name').group().by(__.out_e().count()).by('name'))], 
     'g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byXcountX': [(lambda g:g.V().repeat(__.both('followedBy')).times(2).group().by('songType').by(__.count()))], 
-    'g_V_group_byXname_substring_1X_byXconstantX1XX': [(lambda g, l1=None:g.V().group().by(l1).by(__.constant(1)))], 
-    'g_V_out_group_byXlabelX_selectXpersonX_unfold_outXcreatedX_name_limitX2X': [(lambda g:g.V().out().group().by(T.label).select('person').unfold().out('created').name[0:2])], 
-    'g_V_hasLabelXsongX_group_byXnameX_byXproperties_groupCount_byXlabelXX': [(lambda g:g.V().hasLabel('song').group().by('name').by(__.properties().groupCount().by(T.label)))], 
-    'g_V_outXfollowedByX_group_byXsongTypeX_byXbothE_group_byXlabelX_byXweight_sumXX': [(lambda g:g.V().out('followedBy').group().by('songType').by(__.bothE().group().by(T.label).by(__.weight.sum_())))], 
-    'g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX': [(lambda g:g.V().group().by(T.label).by(__.bothE().group('a').by(T.label).by(__.weight.sum_()).weight.sum_()))], 
-    'g_V_hasLabelXpersonX_asXpX_outXcreatedX_group_byXnameX_byXselectXpX_valuesXageX_sumX': [(lambda g:g.V().hasLabel('person').as_('p').out('created').group().by('name').by(__.select('p').age.sum_()))], 
+    'g_V_group_byXname_substring_1X_byXconstantX1XX': [],  # skipping as it contains a lambda
+    'g_V_out_group_byXlabelX_selectXpersonX_unfold_outXcreatedX_name_limitX2X': [(lambda g:g.V().out().group().by(T.label).select('person').unfold().out('created').values('name').limit(2))], 
+    'g_V_hasLabelXsongX_group_byXnameX_byXproperties_groupCount_byXlabelXX': [(lambda g:g.V().has_label('song').group().by('name').by(__.properties().group_count().by(T.label)))], 
+    'g_V_outXfollowedByX_group_byXsongTypeX_byXbothE_group_byXlabelX_byXweight_sumXX': [(lambda g:g.V().out('followedBy').group().by('songType').by(__.both_e().group().by(T.label).by(__.values('weight').sum_())))], 
+    'g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX': [(lambda g:g.V().group().by(T.label).by(__.both_e().group('a').by(T.label).by(__.values('weight').sum_()).values('weight').sum_()))], 
+    'g_V_hasLabelXpersonX_asXpX_outXcreatedX_group_byXnameX_byXselectXpX_valuesXageX_sumX': [(lambda g:g.V().has_label('person').as_('p').out('created').group().by('name').by(__.select('p').values('age').sum_()))], 
     'g_V_group_byXlabelX_byXlabel_countX': [(lambda g:g.V().group().by(__.label()).by(__.label().count()))], 
-    'g_V_outXcreatedX_groupCount_byXnameX': [(lambda g:g.V().out('created').groupCount().by('name'))], 
-    'g_V_groupCount_byXageX': [(lambda g:g.V().groupCount().by('age'))], 
-    'g_withStrategiesXProductiveByStrategyX_V_groupCount_byXageX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().groupCount().by('age'))], 
-    'g_V_outXcreatedX_name_groupCount': [(lambda g:g.V().out('created').name.groupCount())], 
-    'g_V_outXcreatedX_groupCountXaX_byXnameX_capXaX': [(lambda g:g.V().out('created').groupCount('a').by('name').cap('a'))], 
-    'g_V_outXcreatedX_name_groupCountXaX_capXaX': [(lambda g:g.V().out('created').name.groupCount('a').cap('a'))], 
-    'g_V_repeatXout_groupCountXaX_byXnameXX_timesX2X_capXaX': [(lambda g:g.V().repeat(__.out().groupCount('a').by('name')).times(2).cap('a'))], 
-    'g_V_both_groupCountXaX_byXlabelX_asXbX_barrier_whereXselectXaX_selectXsoftwareX_isXgtX2XXX_selectXbX_name': [(lambda g:g.V().both().groupCount('a').by(T.label).as_('b').barrier().where(__.select('a').select('software').is_(P.gt(2))).select('b').name)], 
-    'g_V_unionXoutXknowsX__outXcreatedX_inXcreatedXX_groupCount_selectXvaluesX_unfold_sum': [(lambda g:g.V().union(__.out('knows'),__.out('created').in_('created')).groupCount().select(Column.values).unfold().sum_())], 
-    'g_V_hasXnoX_groupCount': [(lambda g:g.V().has('no').groupCount())], 
-    'g_V_hasXnoX_groupCountXaX_capXaX': [(lambda g:g.V().has('no').groupCount('a').cap('a'))], 
-    'g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX': [(lambda g:g.V().union(__.repeat(__.out()).times(2).groupCount('m').by('lang'),__.repeat(__.in_()).times(2).groupCount('m').by('name')).cap('m'))], 
-    'g_V_outXcreatedX_groupCountXxX_capXxX': [(lambda g:g.V().out('created').groupCount('x').cap('x'))], 
-    'g_V_groupCount_byXbothE_countX': [(lambda g:g.V().groupCount().by(__.bothE().count()))], 
-    'g_V_both_groupCountXaX_out_capXaX_selectXkeysX_unfold_both_groupCountXaX_capXaX': [(lambda g:g.V().both().groupCount('a').out().cap('a').select(Column.keys).unfold().both().groupCount('a').cap('a'))], 
-    'g_V_hasXperson_name_markoX_bothXknowsX_groupCount_byXvaluesXnameX_foldX': [(lambda g:g.V().has('person','name','marko').both('knows').groupCount().by(__.name.fold()))], 
-    'g_VX1X_out_injectXv2X_name': [(lambda g, vid1=None,v2=None:g.V(vid1).out().inject(v2).name)], 
-    'g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path': [(lambda g, l1=None,vid1=None:g.V(vid1).out().name.inject('daniel').as_('a').map(l1).path())], 
-    'g_VX1X_injectXg_VX4XX_out_name': [(lambda g, vid1=None,v2=None:g.V(vid1).inject(v2).out().name)], 
-    'g_injectXnull_1_3_nullX': [(lambda g:g.inject(None,1,3,None))], 
-    'g_injectX10_20_null_20_10_10X_groupCountXxX_dedup_asXyX_projectXa_bX_by_byXselectXxX_selectXselectXyXXX': [(lambda g:g.inject(10,20,None,20,10,10).groupCount('x').dedup().as_('y').project('a','b').by().by(__.select('x').select(__.select('y'))))], 
-    'g_injectXname_marko_age_nullX_selectXname_ageX': [(lambda g, xx1=None:g.inject(xx1).select('name','age'))], 
-    'g_injectXnull_nullX': [(lambda g:g.inject(None,None))], 
+    'g_V_outXcreatedX_groupCount_byXnameX': [(lambda g:g.V().out('created').group_count().by('name'))], 
+    'g_V_groupCount_byXageX': [(lambda g:g.V().group_count().by('age'))], 
+    'g_withStrategiesXProductiveByStrategyX_V_groupCount_byXageX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().group_count().by('age'))], 
+    'g_V_outXcreatedX_name_groupCount': [(lambda g:g.V().out('created').values('name').group_count())], 
+    'g_V_outXcreatedX_groupCountXaX_byXnameX_capXaX': [(lambda g:g.V().out('created').group_count('a').by('name').cap('a'))], 
+    'g_V_outXcreatedX_name_groupCountXaX_capXaX': [(lambda g:g.V().out('created').values('name').group_count('a').cap('a'))], 
+    'g_V_repeatXout_groupCountXaX_byXnameXX_timesX2X_capXaX': [(lambda g:g.V().repeat(__.out().group_count('a').by('name')).times(2).cap('a'))], 
+    'g_V_both_groupCountXaX_byXlabelX_asXbX_barrier_whereXselectXaX_selectXsoftwareX_isXgtX2XXX_selectXbX_name': [(lambda g:g.V().both().group_count('a').by(T.label).as_('b').barrier().where(__.select('a').select('software').is_(P.gt(2))).select('b').values('name'))], 
+    'g_V_unionXoutXknowsX__outXcreatedX_inXcreatedXX_groupCount_selectXvaluesX_unfold_sum': [(lambda g:g.V().union(__.out('knows'), __.out('created').in_('created')).group_count().select(Column.values).unfold().sum_())], 
+    'g_V_hasXnoX_groupCount': [(lambda g:g.V().has('no').group_count())], 
+    'g_V_hasXnoX_groupCountXaX_capXaX': [(lambda g:g.V().has('no').group_count('a').cap('a'))], 
+    'g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX': [(lambda g:g.V().union(__.repeat(__.out()).times(2).group_count('m').by('lang'), __.repeat(__.in_()).times(2).group_count('m').by('name')).cap('m'))], 
+    'g_V_outXcreatedX_groupCountXxX_capXxX': [(lambda g:g.V().out('created').group_count('x').cap('x'))], 
+    'g_V_groupCount_byXbothE_countX': [(lambda g:g.V().group_count().by(__.both_e().count()))], 
+    'g_V_both_groupCountXaX_out_capXaX_selectXkeysX_unfold_both_groupCountXaX_capXaX': [(lambda g:g.V().both().group_count('a').out().cap('a').select(Column.keys).unfold().both().group_count('a').cap('a'))], 
+    'g_V_hasXperson_name_markoX_bothXknowsX_groupCount_byXvaluesXnameX_foldX': [(lambda g:g.V().has('person', 'name', 'marko').both('knows').group_count().by(__.values('name').fold()))], 
+    'g_VX1X_out_injectXv2X_name': [(lambda g, vid1=None,v2=None:g.V(vid1).out().inject(v2).values('name'))], 
+    'g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path': [],  # skipping as it contains a lambda
+    'g_VX1X_injectXg_VX4XX_out_name': [(lambda g, vid1=None,v2=None:g.V(vid1).inject(v2).out().values('name'))], 
+    'g_injectXnull_1_3_nullX': [(lambda g:g.inject(None, 1, 3, None))], 
+    'g_injectX10_20_null_20_10_10X_groupCountXxX_dedup_asXyX_projectXa_bX_by_byXselectXxX_selectXselectXyXXX': [(lambda g:g.inject(10, 20, None, 20, 10, 10).group_count('x').dedup().as_('y').project('a', 'b').by().by(__.select('x').select(__.select('y'))))], 
+    'g_injectXname_marko_age_nullX_selectXname_ageX': [(lambda g, xx1=None:g.inject(xx1).select('name', 'age'))], 
+    'g_injectXnull_nullX': [(lambda g:g.inject(None, None))], 
     'g_injectXnullX': [(lambda g:g.inject(None))], 
     'g_inject': [(lambda g:g.inject())], 
-    'g_VX1X_valuesXageX_injectXnull_nullX': [(lambda g, xx1=None:g.V(xx1).age.inject(None,None))], 
-    'g_VX1X_valuesXageX_injectXnullX': [(lambda g, xx1=None:g.V(xx1).age.inject(None))], 
-    'g_VX1X_valuesXageX_inject': [(lambda g, xx1=None:g.V(xx1).age.inject())], 
-    'g_injectXnull_1_3_nullX_asXaX_selectXaX': [(lambda g:g.inject(None,1,3,None).as_('a').select('a'))], 
-    'g_injectX1_3lX_injectX100_300X': [(lambda g:g.inject(1,3).inject(100,300))], 
+    'g_VX1X_valuesXageX_injectXnull_nullX': [(lambda g, xx1=None:g.V(xx1).values('age').inject(None, None))], 
+    'g_VX1X_valuesXageX_injectXnullX': [(lambda g, xx1=None:g.V(xx1).values('age').inject(None))], 
+    'g_VX1X_valuesXageX_inject': [(lambda g, xx1=None:g.V(xx1).values('age').inject())], 
+    'g_injectXnull_1_3_nullX_asXaX_selectXaX': [(lambda g:g.inject(None, 1, 3, None).as_('a').select('a'))], 
+    'g_injectX1_3lX_injectX100_300X': [(lambda g:g.inject(1, 3).inject(100, 300))], 
     'g_io_readXkryoX': [(lambda g:g.io('data/tinkerpop-modern.kryo').read()), (lambda g:g.V()), (lambda g:g.E())], 
-    'g_io_read_withXreader_gryoX': [(lambda g:g.io('data/tinkerpop-modern.kryo').with_('~tinkerpop.io.reader','gryo').read()), (lambda g:g.V()), (lambda g:g.E())], 
+    'g_io_read_withXreader_gryoX': [(lambda g:g.io('data/tinkerpop-modern.kryo').with_(IO.reader, IO.gryo).read()), (lambda g:g.V()), (lambda g:g.E())], 
     'g_io_readXgraphsonX': [(lambda g:g.io('data/tinkerpop-modern.json').read()), (lambda g:g.V()), (lambda g:g.E())], 
-    'g_io_read_withXreader_graphsonX': [(lambda g:g.io('data/tinkerpop-modern.json').with_('~tinkerpop.io.reader','graphson').read()), (lambda g:g.V()), (lambda g:g.E())], 
+    'g_io_read_withXreader_graphsonX': [(lambda g:g.io('data/tinkerpop-modern.json').with_(IO.reader, IO.graphson).read()), (lambda g:g.V()), (lambda g:g.E())], 
     'g_io_readXgraphmlX': [(lambda g:g.io('data/tinkerpop-modern.xml').read()), (lambda g:g.V()), (lambda g:g.E())], 
-    'g_io_read_withXreader_graphmlX': [(lambda g:g.io('data/tinkerpop-modern.xml').with_('~tinkerpop.io.reader','graphml').read()), (lambda g:g.V()), (lambda g:g.E())], 
-    'g_withSackXhelloX_V_outE_sackXassignX_byXlabelX_inV_sack': [(lambda g:g.withSack('hello').V().outE().sack(Operator.assign).by(T.label).in_v().sack())], 
-    'g_withSackX0X_V_outE_sackXsumX_byXweightX_inV_sack_sum': [(lambda g:g.withSack(float(0.0)).V().outE().sack(Operator.sum_).by('weight').in_v().sack().sum_())], 
-    'g_withSackX0X_V_repeatXoutE_sackXsumX_byXweightX_inVX_timesX2X_sack': [(lambda g:g.withSack(float(0.0)).V().repeat(__.outE().sack(Operator.sum_).by('weight').in_v()).times(2).sack())], 
-    'g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack': [(lambda g, vid1=None:g.withBulk(False).withSack(float(1.0),Operator.sum_).V(vid1).local(__.outE('knows').barrier(Barrier.normSack).in_v()).in_('knows').barrier().sack())], 
-    'g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack': [(lambda g:g.withBulk(False).withSack(1,Operator.sum_).V().out().barrier().sack())], 
-    'g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack': [(lambda g, vid1=None:g.withSack(float(1.0),Operator.sum_).V(vid1).local(__.out('knows').barrier(Barrier.normSack)).in_('knows').barrier().sack())], 
+    'g_io_read_withXreader_graphmlX': [(lambda g:g.io('data/tinkerpop-modern.xml').with_(IO.reader, IO.graphml).read()), (lambda g:g.V()), (lambda g:g.E())], 
+    'g_withSackXhelloX_V_outE_sackXassignX_byXlabelX_inV_sack': [(lambda g:g.with_sack('hello').V().out_e().sack(Operator.assign).by(T.label).in_v().sack())], 
+    'g_withSackX0X_V_outE_sackXsumX_byXweightX_inV_sack_sum': [(lambda g:g.with_sack(0.0).V().out_e().sack(Operator.sum_).by('weight').in_v().sack().sum_())], 
+    'g_withSackX0X_V_repeatXoutE_sackXsumX_byXweightX_inVX_timesX2X_sack': [(lambda g:g.with_sack(0.0).V().repeat(__.out_e().sack(Operator.sum_).by('weight').in_v()).times(2).sack())], 
+    'g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack': [(lambda g, vid1=None:g.with_bulk(False).with_sack(1.0, Operator.sum_).V(vid1).local(__.out_e('knows').barrier(Barrier.normSack).in_v()).in_('knows').barrier().sack())], 
+    'g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack': [(lambda g:g.with_bulk(False).with_sack(1, Operator.sum_).V().out().barrier().sack())], 
+    'g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack': [(lambda g, vid1=None:g.with_sack(1.0, Operator.sum_).V(vid1).local(__.out('knows').barrier(Barrier.normSack)).in_('knows').barrier().sack())], 
     'g_V_sackXassignX_byXageX_sack': [(lambda g:g.V().sack(Operator.assign).by('age').sack())], 
-    'g_V_hasXageX_groupCountXaX_byXnameX_out_capXaX': [(lambda g:g.V().has('age').groupCount('a').by('name').out().cap('a'))], 
+    'g_V_hasXageX_groupCountXaX_byXnameX_out_capXaX': [(lambda g:g.V().has('age').group_count('a').by('name').out().cap('a'))], 
     'g_V_groupXaX_byXageX_capXaX': [(lambda g:g.V().group('a').by('age').cap('a'))], 
     'g_V_groupXaX_byXnameX_capXaX': [(lambda g:g.V().group('a').by('name').cap('a'))], 
     'g_V_hasXlangX_groupXaX_byXlangX_byXnameX_out_capXaX': [(lambda g:g.V().has('lang').group('a').by('lang').by('name').out().cap('a'))], 
     'g_V_repeatXout_groupXaX_byXnameX_byXcountX_timesX2X_capXaX': [(lambda g:g.V().repeat(__.out().group('a').by('name').by(__.count())).times(2).cap('a'))], 
-    'g_V_groupXaX_byXlabelX_byXoutE_weight_sumX_capXaX': [(lambda g:g.V().group('a').by(T.label).by(__.outE().weight.sum_()).cap('a'))], 
+    'g_V_groupXaX_byXlabelX_byXoutE_weight_sumX_capXaX': [(lambda g:g.V().group('a').by(T.label).by(__.out_e().values('weight').sum_()).cap('a'))], 
     'g_V_repeatXbothXfollowedByXX_timesX2X_groupXaX_byXsongTypeX_byXcountX_capXaX': [(lambda g:g.V().repeat(__.both('followedBy')).times(2).group('a').by('songType').by(__.count()).cap('a'))], 
-    'g_V_groupXaX_byXname_substring_1X_byXconstantX1XX_capXaX': [(lambda g, l1=None:g.V().group('a').by(l1).by(__.constant(1)).cap('a'))], 
-    'g_V_hasLabelXsongX_groupXaX_byXnameX_byXproperties_groupCount_byXlabelXX_out_capXaX': [(lambda g:g.V().hasLabel('song').group('a').by('name').by(__.properties().groupCount().by(T.label)).out().cap('a'))], 
-    'g_V_hasLabelXpersonX_asXpX_outXcreatedX_groupXaX_byXnameX_byXselectXpX_valuesXageX_sumX_capXaX': [(lambda g:g.V().hasLabel('person').as_('p').out('created').group('a').by('name').by(__.select('p').age.sum_()).cap('a'))], 
-    'g_V_groupXmX_byXnameX_byXinXknowsX_nameX_capXmX': [(lambda g:g.V().group('m').by('name').by(__.in_('knows').name).cap('m'))], 
+    'g_V_groupXaX_byXname_substring_1X_byXconstantX1XX_capXaX': [],  # skipping as it contains a lambda
+    'g_V_hasLabelXsongX_groupXaX_byXnameX_byXproperties_groupCount_byXlabelXX_out_capXaX': [(lambda g:g.V().has_label('song').group('a').by('name').by(__.properties().group_count().by(T.label)).out().cap('a'))], 
+    'g_V_hasLabelXpersonX_asXpX_outXcreatedX_groupXaX_byXnameX_byXselectXpX_valuesXageX_sumX_capXaX': [(lambda g:g.V().has_label('person').as_('p').out('created').group('a').by('name').by(__.select('p').values('age').sum_()).cap('a'))], 
+    'g_V_groupXmX_byXnameX_byXinXknowsX_nameX_capXmX': [(lambda g:g.V().group('m').by('name').by(__.in_('knows').values('name')).cap('m'))], 
     'g_V_groupXmX_byXlabelX_byXlabel_countX_capXmX': [(lambda g:g.V().group('m').by(__.label()).by(__.label().count()).cap('m'))], 
     'g_V_storeXa_nameX_out_capXaX': [(lambda g:g.V().store('a').by('name').out().cap('a'))], 
-    'g_VX1X_storeXaX_byXnameX_out_storeXaX_byXnameX_name_capXaX': [(lambda g, vid1=None:g.V(vid1).store('a').by('name').out().store('a').by('name').name.cap('a'))], 
-    'g_withSideEffectXa_setX_V_both_name_storeXaX_capXaX': [(lambda g, xx1=None:g.withSideEffect('a',xx1).V().both().name.store('a').cap('a'))], 
-    'g_V_storeXaX_byXoutEXcreatedX_countX_out_out_storeXaX_byXinEXcreatedX_weight_sumX': [(lambda g:g.V().store('a').by(__.outE('created').count()).out().out().store('a').by(__.inE('created').weight.sum_()).cap('a'))], 
+    'g_VX1X_storeXaX_byXnameX_out_storeXaX_byXnameX_name_capXaX': [(lambda g, vid1=None:g.V(vid1).store('a').by('name').out().store('a').by('name').values('name').cap('a'))], 
+    'g_withSideEffectXa_setX_V_both_name_storeXaX_capXaX': [(lambda g, xx1=None:g.with_side_effect('a', xx1).V().both().values('name').store('a').cap('a'))], 
+    'g_V_storeXaX_byXoutEXcreatedX_countX_out_out_storeXaX_byXinEXcreatedX_weight_sumX': [(lambda g:g.V().store('a').by(__.out_e('created').count()).out().out().store('a').by(__.in_e('created').values('weight').sum_()).cap('a'))], 
 }
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategyProcessTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategyProcessTest.java
index 0f0c069831..1d582f69cf 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategyProcessTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SeedStrategyProcessTest.java
@@ -36,7 +36,7 @@ import static org.junit.Assert.assertEquals;
 
 @RunWith(GremlinProcessRunner.class)
 public class SeedStrategyProcessTest extends AbstractGremlinProcessTest {
-    private static final SeedStrategy seedStrategy = new SeedStrategy(1235L);
+    private static final SeedStrategy seedStrategy = SeedStrategy.build().seed(1235L).create();
 
     @Test
     @LoadGraphWith(MODERN)
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature
index 545fa32e9d..e13ecd87e4 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature
@@ -53,7 +53,7 @@ Feature: Step - repeat()
     Given the modern graph
     And the traversal of
       """
-      g.V().repeat(__.outE().inV()).times(2).path().by("name").by(T.label);
+      g.V().repeat(__.outE().inV()).times(2).path().by("name").by(T.label)
       """
     When iterated to list
     Then the result should be unordered