You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by va...@apache.org on 2024/06/10 20:06:09 UTC

(tinkerpop) branch valentyn/bytecode-poc updated: rename Bytecode to GremlinLang

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

valentyn pushed a commit to branch valentyn/bytecode-poc
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/valentyn/bytecode-poc by this push:
     new 33551cc051 rename Bytecode to GremlinLang
33551cc051 is described below

commit 33551cc051c940ec17a996fc719dccac2903f77a
Author: Valentyn Kahamlyk <Va...@improving.com>
AuthorDate: Mon Jun 10 13:05:58 2024 -0700

    rename Bytecode to GremlinLang
---
 .../dsl/SocialPackageTraversalSourceDsl.java       |   2 +-
 .../console/commands/BytecodeCommand.groovy        |   4 +-
 .../gremlin/jsr223/GremlinLangScriptEngine.java    |   4 +-
 .../gremlin/jsr223/GremlinScriptEngine.java        |  10 +-
 .../tinkerpop/gremlin/jsr223/JavaTranslator.java   |  20 +-
 .../gremlin/jsr223/TranslatorCustomizer.java       |   6 +-
 .../language/grammar/GremlinAntlrToJava.java       |   4 +-
 .../language/grammar/NoOpTerminalVisitor.java      |  10 +-
 .../grammar/TerminalMethodToBytecodeVisitor.java   |  20 +-
 .../strategy/decoration/VertexProgramStrategy.java |   2 +-
 .../process/remote/EmbeddedRemoteConnection.java   |   6 +-
 .../gremlin/process/remote/RemoteConnection.java   |   6 +-
 .../remote/traversal/AbstractRemoteTraversal.java  |   4 +-
 .../process/remote/traversal/RemoteTraversal.java  |   4 +-
 .../remote/traversal/step/map/RemoteStep.java      |   6 +-
 .../gremlin/process/traversal/Bindings.java        |   4 +-
 .../gremlin/process/traversal/GraphOp.java         |  16 +-
 .../traversal/{Bytecode.java => GremlinLang.java}  |  24 +-
 .../gremlin/process/traversal/Translator.java      |  30 +-
 .../gremlin/process/traversal/Traversal.java       |   8 +-
 .../gremlin/process/traversal/TraversalSource.java |  34 +-
 .../traversal/dsl/graph/GraphTraversal.java        | 474 ++++++++++-----------
 .../traversal/dsl/graph/GraphTraversalSource.java  |  52 +--
 .../traversal/lambda/AbstractLambdaTraversal.java  |   6 +-
 .../lambda/CardinalityValueTraversal.java          |  10 +-
 .../traversal/strategy/TraversalStrategyProxy.java |   4 +-
 .../translator/AnonymizingTypeTranslator.java      |   4 +-
 .../traversal/translator/DotNetTranslator.java     |  18 +-
 .../traversal/translator/GolangTranslator.java     |  14 +-
 .../traversal/translator/GroovyTranslator.java     |  12 +-
 .../traversal/translator/JavascriptTranslator.java |  12 +-
 .../traversal/translator/PythonTranslator.java     |  18 +-
 .../process/traversal/util/BytecodeHelper.java     |  40 +-
 .../process/traversal/util/DefaultTraversal.java   |  18 +-
 .../process/traversal/util/EmptyTraversal.java     |   6 +-
 .../io/binary/TypeSerializerRegistry.java          |   6 +-
 .../io/binary/types/BindingSerializer.java         |  10 +-
 .../io/binary/types/ByteCodeSerializer.java        |  18 +-
 .../binary/types/TraversalStrategySerializer.java  |   2 +-
 .../structure/io/graphson/GraphSONModule.java      |  38 +-
 .../io/graphson/TraversalSerializersV2.java        |  36 +-
 .../io/graphson/TraversalSerializersV3.java        |  36 +-
 .../structure/io/gryo/GryoSerializersV1.java       |  22 +-
 .../structure/io/gryo/GryoSerializersV3.java       |  22 +-
 .../gremlin/structure/io/gryo/GryoVersion.java     |  10 +-
 .../jsr223/GremlinLangScriptEngineTest.java        |   8 +-
 .../grammar/GraphTraversalSourceVisitorTest.java   |   3 +-
 .../language/grammar/GremlinQueryParserTest.java   |  24 +-
 .../grammar/TraversalMethodVisitorTest.java        |   4 +-
 .../language/grammar/TraversalRootVisitorTest.java |   4 +-
 .../TraversalSourceSelfMethodVisitorTest.java      |   2 +-
 .../gremlin/process/traversal/BytecodeTest.java    |  64 +--
 .../gremlin/process/traversal/GremlincodeTest.java |   5 +-
 .../gremlin/process/traversal/TraversalTest.java   |   4 +-
 .../traversal/dsl/graph/GraphTraversalTest.java    |   6 +-
 .../decoration/ConnectiveStrategyTest.java         |   2 +-
 .../decoration/ElementIdStrategyTraverseTest.java  |   2 +-
 .../strategy/decoration/EventStrategyTest.java     |   2 +-
 .../strategy/decoration/PartitionStrategyTest.java |   2 +-
 .../strategy/decoration/SubgraphStrategyTest.java  |   4 +-
 .../decoration/VertexProgramStrategyTest.java      |   2 +-
 .../AdjacentToIncidentStrategyTest.java            |   2 +-
 .../ByModulatorOptimizationStrategyTest.java       |   2 +-
 .../strategy/optimization/CountStrategyTest.java   |   2 +-
 .../optimization/EarlyLimitStrategyTest.java       |   2 +-
 .../optimization/FilterRankingStrategyTest.java    |   2 +-
 .../optimization/IdentityRemovalStrategyTest.java  |   2 +-
 .../IncidentToAdjacentStrategyTest.java            |   2 +-
 .../optimization/InlineFilterStrategyTest.java     |   2 +-
 .../optimization/LazyBarrierStrategyTest.java      |   2 +-
 .../optimization/MatchPredicateStrategyTest.java   |   2 +-
 .../optimization/OrderLimitStrategyTest.java       |   2 +-
 .../optimization/PathProcessorStrategyTest.java    |   2 +-
 .../optimization/PathRetractionStrategyTest.java   |   2 +-
 .../optimization/ProductiveByStrategyTest.java     |   2 +-
 .../optimization/RepeatUnrollStrategyTest.java     |   2 +-
 .../ComputerVerificationStrategyTest.java          |   2 +-
 .../EdgeLabelVerificationStrategyTest.java         |   8 +-
 .../LambdaRestrictionStrategyTest.java             |   2 +-
 .../verification/ReadOnlyStrategyTest.java         |   2 +-
 .../ReservedKeysVerificationStrategyTest.java      |   8 +-
 .../StandardVerificationStrategyTest.java          |   2 +-
 .../translator/AnonymizingTypeTranslatorTest.java  |   4 +-
 .../traversal/translator/DotNetTranslatorTest.java |  98 ++---
 .../traversal/translator/GolangTranslatorTest.java |  22 +-
 .../traversal/translator/GroovyTranslatorTest.java |   2 +-
 .../translator/JavascriptTranslatorTest.java       |  30 +-
 .../ParameterizedGroovyTranslatorTest.java         |  28 +-
 .../traversal/translator/PythonTranslatorTest.java |  26 +-
 .../process/traversal/util/BytecodeHelperTest.java |  22 +-
 .../graphson/GraphSONMapperEmbeddedTypeTest.java   |   6 +-
 .../GraphSONMapperPartialEmbeddedTypeTest.java     |  10 +-
 .../gremlin/structure/io/gryo/GryoMapperTest.java  |   6 +-
 .../apache/tinkerpop/gremlin/driver/Client.java    |   4 +-
 .../driver/handler/HttpGremlinRequestEncoder.java  |  11 +-
 .../driver/remote/DriverRemoteConnection.java      |  15 +-
 .../driver/remote/DriverRemoteTransaction.java     |   8 +-
 .../driver/remote/DriverRemoteConnectionTest.java  |   4 +-
 .../ast/VarAsBindingASTTransformation.groovy       |   4 +-
 .../gremlin/groovy/engine/GremlinExecutor.java     |   8 +-
 .../groovy/jsr223/GremlinGroovyScriptEngine.java   |   4 +-
 .../jsr223/GremlinGroovyScriptEngineTest.java      |  10 +-
 .../apache/tinkerpop/gremlin/server/Context.java   |   6 +-
 .../tinkerpop/gremlin/server/authz/Authorizer.java |  10 +-
 .../handler/HttpBasicAuthorizationHandler.java     |   6 +-
 .../server/handler/HttpGremlinEndpointHandler.java |   6 +-
 .../server/GremlinServerHttpIntegrateTest.java     |  10 +-
 .../gremlin/server/authz/AllowListAuthorizer.java  |  10 +-
 .../gremlin/server/authz/AuthorizerTest.java       |  44 +-
 .../jsr223/GremlinEnabledScriptEngineTest.java     |  10 +-
 .../gremlin/jsr223/MockGremlinScriptEngine.java    |   4 +-
 .../process/traversal/CoreTraversalTest.java       |   2 +-
 .../strategy/decoration/TranslationStrategy.java   |  24 +-
 .../driver/GraphBinaryReaderWriterBenchmark.java   |  12 +-
 .../gremlin/driver/GraphSONMapperBenchmark.java    |  12 +-
 .../gremlin/driver/SerializationBenchmark.java     |   4 +-
 .../tinkerpop/jsr223/JavaTranslatorBenchmark.java  |   8 +-
 .../gremlin/util/message/RequestMessageV4.java     |   6 +-
 .../ser/binary/RequestMessageSerializerV4.java     |   4 +-
 .../io/AbstractTypedCompatibilityTest.java         |  12 +-
 .../tinkerpop/gremlin/structure/io/Model.java      |   6 +-
 .../gremlin/util/ser/AbstractRoundTripTest.java    |  10 +-
 .../util/ser/binary/MessageSerializerV4Test.java   |   2 +-
 .../ser/binary/TypeSerializerFailureTests.java     |   6 +-
 .../dsl/sparql/SparqlTraversalSource.java          |   2 +-
 .../structure/io/graphson/GraphSONTranslator.java  |   6 +-
 .../structure/io/gryo/GryoTranslator.java          |   6 +-
 127 files changed, 922 insertions(+), 932 deletions(-)

diff --git a/gremlin-annotations/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/SocialPackageTraversalSourceDsl.java b/gremlin-annotations/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/SocialPackageTraversalSourceDsl.java
index c9c8be6361..5c009827c6 100644
--- a/gremlin-annotations/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/SocialPackageTraversalSourceDsl.java
+++ b/gremlin-annotations/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/SocialPackageTraversalSourceDsl.java
@@ -48,7 +48,7 @@ public class SocialPackageTraversalSourceDsl extends GraphTraversalSource {
     public GraphTraversal<Vertex, Vertex> persons(String... names) {
         GraphTraversalSource clone = this.clone();
 
-        clone.getBytecode().addStep(GraphTraversal.Symbols.V);
+        clone.getGremlinLang().addStep(GraphTraversal.Symbols.V);
         GraphTraversal<Vertex, Vertex> traversal = new DefaultGraphTraversal<>(clone);
         traversal.asAdmin().addStep(new GraphStep<>(traversal.asAdmin(), Vertex.class, true));
 
diff --git a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/BytecodeCommand.groovy b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/BytecodeCommand.groovy
index d4674e9406..fc53626551 100644
--- a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/BytecodeCommand.groovy
+++ b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/commands/BytecodeCommand.groovy
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.console.commands
 import org.apache.groovy.groovysh.ComplexCommandSupport
 import org.apache.groovy.groovysh.Groovysh
 import org.apache.tinkerpop.gremlin.console.Mediator
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal
 import org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator
 import org.apache.tinkerpop.gremlin.structure.io.IoRegistry
@@ -73,7 +73,7 @@ class BytecodeCommand extends ComplexCommandSupport {
         def g = arguments[0]
         def args = arguments.drop(1).join(" ")
         def graphson = args.startsWith("@") ? shell.interp.context.getVariable(args.substring(1)) : args
-        return GroovyTranslator.of(g).translate(mapper.readValue(graphson, Bytecode.class))
+        return GroovyTranslator.of(g).translate(mapper.readValue(graphson, GremlinLang.class))
     }
 
     def Object do_reset = { List<String> arguments ->
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
index 842d4daa32..92071a198e 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngine.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.jsr223;
 import org.apache.tinkerpop.gremlin.language.grammar.GremlinAntlrToJava;
 import org.apache.tinkerpop.gremlin.language.grammar.GremlinQueryParser;
 import org.apache.tinkerpop.gremlin.language.grammar.VariableResolver;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@ -79,7 +79,7 @@ public class GremlinLangScriptEngine extends AbstractScriptEngine implements Gre
      * Bytecode is evaluated by the {@link JavaTranslator}.
      */
     @Override
-    public Traversal.Admin eval(final Bytecode bytecode, final Bindings bindings, final String traversalSource) throws ScriptException {
+    public Traversal.Admin eval(final GremlinLang bytecode, final Bindings bindings, final String traversalSource) throws ScriptException {
         if (traversalSource.equals(HIDDEN_G))
             throw new IllegalArgumentException("The traversalSource cannot have the name " + HIDDEN_G + " - it is reserved");
 
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinScriptEngine.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinScriptEngine.java
index 270eb7894a..82173b33ed 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinScriptEngine.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinScriptEngine.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.jsr223;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 
 import javax.script.Bindings;
@@ -39,13 +39,13 @@ public interface GremlinScriptEngine extends ScriptEngine {
     public GremlinScriptEngineFactory getFactory();
 
     /**
-     * Evaluates {@link Traversal} {@link Bytecode} against a traversal source in the global bindings of the
+     * Evaluates {@link Traversal} {@link GremlinLang} against a traversal source in the global bindings of the
      * {@code ScriptEngine}.
      *
      * @param bytecode of the traversal to execute
      * @param traversalSource to execute the bytecode against which should be in the available bindings.
      */
-    public default Traversal.Admin eval(final Bytecode bytecode, final String traversalSource) throws ScriptException {
+    public default Traversal.Admin eval(final GremlinLang bytecode, final String traversalSource) throws ScriptException {
         final Bindings bindings = this.createBindings();
         final ScriptContext ctx = this.getContext();
 
@@ -60,8 +60,8 @@ public interface GremlinScriptEngine extends ScriptEngine {
     }
 
     /**
-     * Evaluates {@link Traversal} {@link Bytecode} with the specified {@code Bindings}. These {@code Bindings}
+     * Evaluates {@link Traversal} {@link GremlinLang} with the specified {@code Bindings}. These {@code Bindings}
      * supplied to this method will be merged with global engine bindings and override them where keys match.
      */
-    public Traversal.Admin eval(final Bytecode bytecode, final Bindings bindings, final String traversalSource) throws ScriptException;
+    public Traversal.Admin eval(final GremlinLang bytecode, final Bindings bindings, final String traversalSource) throws ScriptException;
 }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
index 1641d823bc..e5f4c7c73a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.jsr223;
 
 import org.apache.commons.configuration2.Configuration;
 import org.apache.commons.configuration2.MapConfiguration;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
@@ -76,17 +76,17 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
     }
 
     @Override
-    public T translate(final Bytecode bytecode) {
+    public T translate(final GremlinLang bytecode) {
         if (BytecodeHelper.isGraphOperation(bytecode))
             throw new IllegalArgumentException("JavaTranslator cannot translate traversal operations");
 
         TraversalSource dynamicSource = this.traversalSource;
         Traversal.Admin<?, ?> traversal = null;
-        for (final Bytecode.Instruction instruction : bytecode.getSourceInstructions()) {
+        for (final GremlinLang.Instruction instruction : bytecode.getSourceInstructions()) {
             dynamicSource = (TraversalSource) invokeMethod(dynamicSource, TraversalSource.class, instruction.getOperator(), instruction.getArguments());
         }
         boolean spawned = false;
-        for (final Bytecode.Instruction instruction : bytecode.getStepInstructions()) {
+        for (final GremlinLang.Instruction instruction : bytecode.getStepInstructions()) {
             if (!spawned) {
                 traversal = (Traversal.Admin) invokeMethod(dynamicSource, Traversal.class, instruction.getOperator(), instruction.getArguments());
                 spawned = true;
@@ -109,12 +109,12 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
     ////
 
     private Object translateObject(final Object object) {
-        if (object instanceof Bytecode.Binding)
-            return translateObject(((Bytecode.Binding) object).value());
-        else if (object instanceof Bytecode) {
+        if (object instanceof GremlinLang.Binding)
+            return translateObject(((GremlinLang.Binding) object).value());
+        else if (object instanceof GremlinLang) {
             // source based bytecode at this stage of translation could have special meaning, but generally this is
             // going to spawn a new anonymous traversal.
-            final Bytecode bc = (Bytecode) object;
+            final GremlinLang bc = (GremlinLang) object;
             if (!bc.getSourceInstructions().isEmpty()) {
                 // currently, valid source instructions will be singly defined. would be odd to get this error. could
                 // be just bad construction from a language variant if it appears. maybe better as an assertion but
@@ -123,7 +123,7 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
                     throw new IllegalStateException("More than one source instruction defined in bytecode");
                 }
 
-                final Bytecode.Instruction inst = bc.getSourceInstructions().get(0);
+                final GremlinLang.Instruction inst = bc.getSourceInstructions().get(0);
                 if (inst.getOperator().equals(CardinalityValueTraversal.class.getSimpleName())) {
                     return CardinalityValueTraversal.from(inst);
                 } else {
@@ -132,7 +132,7 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
             } else {
                 try {
                     final Traversal.Admin<?, ?> traversal = (Traversal.Admin) this.anonymousTraversalStart.invoke(null);
-                    for (final Bytecode.Instruction instruction : bc.getStepInstructions()) {
+                    for (final GremlinLang.Instruction instruction : bc.getStepInstructions()) {
                         invokeMethod(traversal, Traversal.class, instruction.getOperator(), instruction.getArguments());
                     }
                     return traversal;
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java
index 446825581a..5345102122 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/TranslatorCustomizer.java
@@ -18,11 +18,11 @@
  */
 package org.apache.tinkerpop.gremlin.jsr223;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 
 /**
- * Provides a way to customize and override {@link Bytecode} to script translation. Not all {@link GremlinScriptEngine}
+ * Provides a way to customize and override {@link GremlinLang} to script translation. Not all {@link GremlinScriptEngine}
  * will support this capability as translation is optional.
  *
  * @author Stephen Mallette (http://stephen.genoprime.com)
@@ -32,7 +32,7 @@ public interface TranslatorCustomizer extends Customizer {
     /**
      * Construct a {@link Translator.ScriptTranslator.TypeTranslator} that will be used by a
      * {@link Translator.ScriptTranslator} instance within the {@link GremlinScriptEngine} to translate
-     * {@link Bytecode} to a script.
+     * {@link GremlinLang} to a script.
      */
     public Translator.ScriptTranslator.TypeTranslator createTypeTranslator();
 }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GremlinAntlrToJava.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GremlinAntlrToJava.java
index f77e0a8063..2c70def067 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GremlinAntlrToJava.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GremlinAntlrToJava.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.language.grammar;
 
 import org.antlr.v4.runtime.tree.ParseTree;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
@@ -106,7 +106,7 @@ public class GremlinAntlrToJava extends DefaultGremlinBaseVisitor<Object> {
 
     /**
      * Constructs a new instance and is bound to an {@link EmptyGraph}. This form of construction is helpful for
-     * generating {@link Bytecode} or for various forms of testing. {@link Traversal} instances constructed from this
+     * generating {@link GremlinLang} or for various forms of testing. {@link Traversal} instances constructed from this
      * form will not be capable of iterating. Assumes that "g" is the name of the {@link GraphTraversalSource}.
      */
     public GremlinAntlrToJava() {
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/NoOpTerminalVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/NoOpTerminalVisitor.java
index a43b9fa70d..fe679c7f29 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/NoOpTerminalVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/NoOpTerminalVisitor.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.language.grammar;
 
 import org.antlr.v4.runtime.tree.ParseTree;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@ -30,7 +30,7 @@ import java.util.function.Supplier;
 /**
  * {@inheritDoc}
  *
- * The same as parent visitor {@link GremlinAntlrToJava} but returns {@link Bytecode} instead of a {@link Traversal}
+ * The same as parent visitor {@link GremlinAntlrToJava} but returns {@link GremlinLang} instead of a {@link Traversal}
  * or {@link GraphTraversalSource}, and uses an overridden terminal step visitor.
  */
 public class NoOpTerminalVisitor extends GremlinAntlrToJava {
@@ -50,7 +50,7 @@ public class NoOpTerminalVisitor extends GremlinAntlrToJava {
     }
 
     /**
-     * Returns {@link Bytecode} of {@link Traversal} or {@link GraphTraversalSource}, overriding any terminal step
+     * Returns {@link GremlinLang} of {@link Traversal} or {@link GraphTraversalSource}, overriding any terminal step
      * operations to prevent them from being executed using the {@link TraversalTerminalMethodVisitor} to append
      * terminal operations to bytecode.
      *
@@ -65,7 +65,7 @@ public class NoOpTerminalVisitor extends GremlinAntlrToJava {
             if (firstChild instanceof GremlinParser.TraversalSourceContext) {
                 if (childCount == 1) {
                     // handle traversalSource
-                    return gvisitor.visitTraversalSource((GremlinParser.TraversalSourceContext)firstChild).getBytecode();
+                    return gvisitor.visitTraversalSource((GremlinParser.TraversalSourceContext)firstChild).getGremlinLang();
                 } else {
                     // handle traversalSource DOT transactionPart
                     throw new GremlinParserException("Transaction operation is not supported yet");
@@ -77,7 +77,7 @@ public class NoOpTerminalVisitor extends GremlinAntlrToJava {
                 if (childCount == 1) {
                     // handle rootTraversal
                     return tvisitor.visitRootTraversal(
-                            (GremlinParser.RootTraversalContext)firstChild).asAdmin().getGremlincode();
+                            (GremlinParser.RootTraversalContext)firstChild).asAdmin().getGremlinLang();
                 } else {
                     // handle rootTraversal DOT traversalTerminalMethod
                     // could not keep all of these methods in one visitor due to the need of the terminal visitor to have a traversal,
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TerminalMethodToBytecodeVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TerminalMethodToBytecodeVisitor.java
index 78e822b292..92da559f81 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TerminalMethodToBytecodeVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TerminalMethodToBytecodeVisitor.java
@@ -18,11 +18,11 @@
  */
 package org.apache.tinkerpop.gremlin.language.grammar;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 
 /**
- * Handles terminal steps for {@link Bytecode} as they are not added this way naturally. They are normally treated as
+ * Handles terminal steps for {@link GremlinLang} as they are not added this way naturally. They are normally treated as
  * the point of traversal execution.
  */
 public class TerminalMethodToBytecodeVisitor extends TraversalTerminalMethodVisitor {
@@ -46,7 +46,7 @@ public class TerminalMethodToBytecodeVisitor extends TraversalTerminalMethodVisi
      */
     @Override
     public Object visitTraversalTerminalMethod_explain(final GremlinParser.TraversalTerminalMethod_explainContext ctx) {
-        final Bytecode bc = this.traversal.asAdmin().getGremlincode();
+        final GremlinLang bc = this.traversal.asAdmin().getGremlinLang();
         bc.addStep("explain");
         return bc;
     }
@@ -58,7 +58,7 @@ public class TerminalMethodToBytecodeVisitor extends TraversalTerminalMethodVisi
      */
     @Override
     public Object visitTraversalTerminalMethod_iterate(final GremlinParser.TraversalTerminalMethod_iterateContext ctx) {
-        final Bytecode bc = this.traversal.asAdmin().getGremlincode();
+        final GremlinLang bc = this.traversal.asAdmin().getGremlinLang();
         bc.addStep("iterate");
         return bc;
     }
@@ -70,7 +70,7 @@ public class TerminalMethodToBytecodeVisitor extends TraversalTerminalMethodVisi
      */
     @Override
     public Object visitTraversalTerminalMethod_hasNext(final GremlinParser.TraversalTerminalMethod_hasNextContext ctx) {
-        final Bytecode bc = this.traversal.asAdmin().getGremlincode();
+        final GremlinLang bc = this.traversal.asAdmin().getGremlinLang();
         bc.addStep("hasNext");
         return bc;
     }
@@ -82,7 +82,7 @@ public class TerminalMethodToBytecodeVisitor extends TraversalTerminalMethodVisi
      */
     @Override
     public Object visitTraversalTerminalMethod_tryNext(final GremlinParser.TraversalTerminalMethod_tryNextContext ctx) {
-        final Bytecode bc = this.traversal.asAdmin().getGremlincode();
+        final GremlinLang bc = this.traversal.asAdmin().getGremlinLang();
         bc.addStep("tryNext");
         return bc;
     }
@@ -94,7 +94,7 @@ public class TerminalMethodToBytecodeVisitor extends TraversalTerminalMethodVisi
      */
     @Override
     public Object visitTraversalTerminalMethod_next(final GremlinParser.TraversalTerminalMethod_nextContext ctx) {
-        final Bytecode bc = this.traversal.asAdmin().getGremlincode();
+        final GremlinLang bc = this.traversal.asAdmin().getGremlinLang();
         if (ctx.getChildCount() == 3) {
             bc.addStep("next");
         } else {
@@ -113,7 +113,7 @@ public class TerminalMethodToBytecodeVisitor extends TraversalTerminalMethodVisi
      */
     @Override
     public Object visitTraversalTerminalMethod_toList(final GremlinParser.TraversalTerminalMethod_toListContext ctx) {
-        final Bytecode bc = this.traversal.asAdmin().getGremlincode();
+        final GremlinLang bc = this.traversal.asAdmin().getGremlinLang();
         bc.addStep("toList");
         return bc;
     }
@@ -125,7 +125,7 @@ public class TerminalMethodToBytecodeVisitor extends TraversalTerminalMethodVisi
      */
     @Override
     public Object visitTraversalTerminalMethod_toSet(final GremlinParser.TraversalTerminalMethod_toSetContext ctx) {
-        final Bytecode bc = this.traversal.asAdmin().getGremlincode();
+        final GremlinLang bc = this.traversal.asAdmin().getGremlinLang();
         bc.addStep("toSet");
         return bc;
     }
@@ -137,7 +137,7 @@ public class TerminalMethodToBytecodeVisitor extends TraversalTerminalMethodVisi
      */
     @Override
     public Object visitTraversalTerminalMethod_toBulkSet(final GremlinParser.TraversalTerminalMethod_toBulkSetContext ctx) {
-        final Bytecode bc = this.traversal.asAdmin().getGremlincode();
+        final GremlinLang bc = this.traversal.asAdmin().getGremlinLang();
         bc.addStep("toBulkSet");
         return bc;
     }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/decoration/VertexProgramStrategy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/decoration/VertexProgramStrategy.java
index d104333526..6afe1ca39f 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/decoration/VertexProgramStrategy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/strategy/decoration/VertexProgramStrategy.java
@@ -104,7 +104,7 @@ public final class VertexProgramStrategy extends AbstractTraversalStrategy<Trave
         // wrap all non-VertexComputing steps into a TraversalVertexProgramStep
         currentStep = traversal.getStartStep();
         while (!(currentStep instanceof EmptyStep)) {
-            final Traversal.Admin<?, ?> computerTraversal = new DefaultTraversal<>(traversal.getGremlincode());
+            final Traversal.Admin<?, ?> computerTraversal = new DefaultTraversal<>(traversal.getGremlinLang());
             final Step<?, ?> firstLegalOLAPStep = getFirstLegalOLAPStep(currentStep);
             final Step<?, ?> lastLegalOLAPStep = getLastLegalOLAPStep(currentStep);
             if (!(firstLegalOLAPStep instanceof EmptyStep)) {
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/EmbeddedRemoteConnection.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/EmbeddedRemoteConnection.java
index 8c91b62c4f..83d98de628 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/EmbeddedRemoteConnection.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/EmbeddedRemoteConnection.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.process.remote;
 import org.apache.tinkerpop.gremlin.jsr223.JavaTranslator;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.EmbeddedRemoteTraversal;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 
@@ -54,12 +54,12 @@ public class EmbeddedRemoteConnection implements RemoteConnection {
     }
 
     @Override
-    public <E> CompletableFuture<RemoteTraversal<?, E>> submitAsync(final Bytecode bytecode) throws RemoteConnectionException {
+    public <E> CompletableFuture<RemoteTraversal<?, E>> submitAsync(final GremlinLang gremlinLang) throws RemoteConnectionException {
         // default implementation for backward compatibility to 3.2.4 - this method will probably just become
         // the new submit() in 3.3.x when the deprecation is removed
         final CompletableFuture<RemoteTraversal<?, E>> promise = new CompletableFuture<>();
         try {
-            promise.complete(new EmbeddedRemoteTraversal(JavaTranslator.of(g).translate(bytecode)));
+            promise.complete(new EmbeddedRemoteTraversal(JavaTranslator.of(g).translate(gremlinLang)));
         } catch (Exception t) {
             promise.completeExceptionally(t);
         }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteConnection.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteConnection.java
index 639e286c84..92b4170812 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteConnection.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/RemoteConnection.java
@@ -20,7 +20,7 @@ package org.apache.tinkerpop.gremlin.process.remote;
 
 import org.apache.commons.configuration2.Configuration;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.structure.Transaction;
 
@@ -49,11 +49,11 @@ public interface RemoteConnection extends AutoCloseable {
     }
 
     /**
-     * Submits {@link Traversal} {@link Bytecode} to a server and returns a promise of a {@link RemoteTraversal}.
+     * Submits {@link Traversal} {@link GremlinLang} to a server and returns a promise of a {@link RemoteTraversal}.
      * The {@link RemoteTraversal} is an abstraction over two types of results that can be returned as part of the
      * response from the server: the results of the {@link Traversal} itself and the side-effects that it produced.
      */
-    public <E> CompletableFuture<RemoteTraversal<?, E>> submitAsync(final Bytecode bytecode) throws RemoteConnectionException;
+    public <E> CompletableFuture<RemoteTraversal<?, E>> submitAsync(final GremlinLang gremlinLang) throws RemoteConnectionException;
 
     /**
      * Create a {@link RemoteConnection} from a {@code Configuration} object. The configuration must contain a
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/AbstractRemoteTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/AbstractRemoteTraversal.java
index e8d8275330..869b947f3d 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/AbstractRemoteTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/AbstractRemoteTraversal.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.process.remote.traversal;
 
 import org.apache.tinkerpop.gremlin.process.remote.traversal.step.map.RemoteStep;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
@@ -58,7 +58,7 @@ public abstract class AbstractRemoteTraversal<S,E> implements RemoteTraversal<S,
     }
 
     @Override
-    public Bytecode getGremlincode() {
+    public GremlinLang getGremlinLang() {
         throw new UnsupportedOperationException("Remote traversals do not support this method");
     }
 
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraversal.java
index 69db6c55fa..0711dd598b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/RemoteTraversal.java
@@ -20,12 +20,12 @@ package org.apache.tinkerpop.gremlin.process.remote.traversal;
 
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.step.map.RemoteStep;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
 
 /**
- * A {@link RemoteTraversal} is returned from {@link RemoteConnection#submitAsync(Bytecode)}. It is iterated from
+ * A {@link RemoteTraversal} is returned from {@link RemoteConnection#submitAsync(GremlinLang)}. It is iterated from
  * within {@link RemoteStep} using {@link #nextTraverser()}. Implementations should typically be given a "result" from
  * a remote source where the traversal was executed. The "result" should be an iterator which preferably has its data
  * bulked.
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
index 306dba7e8e..71ad5c884b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/remote/traversal/step/map/RemoteStep.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.process.remote.traversal.step.map;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnectionException;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
@@ -77,12 +77,12 @@ public final class RemoteStep<S, E> extends AbstractStep<S, E> {
     }
 
     /**
-     * Submits the traversal asynchronously to a "remote" using {@link RemoteConnection#submitAsync(Bytecode)}.
+     * Submits the traversal asynchronously to a "remote" using {@link RemoteConnection#submitAsync(GremlinLang)}.
      */
     public CompletableFuture<Traversal<?, E>> promise() {
         try {
             if (null == traversalFuture.get()) {
-                traversalFuture.set(this.remoteConnection.submitAsync(this.traversal.getGremlincode()).<Traversal<?, E>>thenApply(t -> {
+                traversalFuture.set(this.remoteConnection.submitAsync(this.traversal.getGremlinLang()).<Traversal<?, E>>thenApply(t -> {
                     this.remoteTraversal = (RemoteTraversal<?, E>) t;
                     return traversal;
                 }));
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bindings.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bindings.java
index 19c87379a7..3b2f6f1602 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bindings.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bindings.java
@@ -23,8 +23,8 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * Bindings are used to associate a variable with a value. They enable the creation of {@link Bytecode.Binding}
- * arguments in {@link Bytecode}. Use the Bindings instance when defining a binding via {@link Bindings#of(String, Object)}.
+ * Bindings are used to associate a variable with a value. They enable the creation of {@link GremlinLang.Binding}
+ * arguments in {@link GremlinLang}. Use the Bindings instance when defining a binding via {@link Bindings#of(String, Object)}.
  * For instance:
  * <p>
  * <code>
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GraphOp.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GraphOp.java
index ad47929414..0ad95226bb 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GraphOp.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GraphOp.java
@@ -22,7 +22,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSo
 import org.apache.tinkerpop.gremlin.structure.Transaction;
 
 /**
- * A {@code GraphOp} or "graph operation" is a static {@link Bytecode} form that does not translate to a traversal
+ * A {@code GraphOp} or "graph operation" is a static {@link GremlinLang} form that does not translate to a traversal
  * but instead refers to a specific function to perform on a graph instance.
  */
 public enum GraphOp {
@@ -30,30 +30,30 @@ public enum GraphOp {
     /**
      * Commit a transaction.
      */
-    TX_COMMIT(new Bytecode(GraphTraversalSource.Symbols.tx, Transaction.Symbols.commit)),
+    TX_COMMIT(new GremlinLang(GraphTraversalSource.Symbols.tx, Transaction.Symbols.commit)),
 
     /**
      * Rollback a transaction.
      */
-    TX_ROLLBACK(new Bytecode(GraphTraversalSource.Symbols.tx, Transaction.Symbols.rollback));
+    TX_ROLLBACK(new GremlinLang(GraphTraversalSource.Symbols.tx, Transaction.Symbols.rollback));
 
-    private final Bytecode bytecode;
+    private final GremlinLang bytecode;
 
-    GraphOp(final Bytecode bc) {
+    GraphOp(final GremlinLang bc) {
         this.bytecode = bc;
     }
 
     /**
-     * Gets the {@link Bytecode} that represents this graph operation. There is no notion of immutable bytecode
+     * Gets the {@link GremlinLang} that represents this graph operation. There is no notion of immutable bytecode
      * instances so it is important that the object returned here is not modified. If they are changed, the operations
      * will no longer be recognized. In a future version, we should probably introduce the concept of immutable
      * bytecode to prevent this possibility - https://issues.apache.org/jira/browse/TINKERPOP-2545
      */
-    public Bytecode getBytecode() {
+    public GremlinLang getBytecode() {
         return bytecode;
     }
 
-    public boolean equals(final Bytecode bc) {
+    public boolean equals(final GremlinLang bc) {
         return bytecode.equals(bc);
     }
 }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLang.java
similarity index 96%
rename from gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java
rename to gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLang.java
index a97e0493b1..d319957d5e 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLang.java
@@ -53,7 +53,7 @@ import static org.apache.tinkerpop.gremlin.util.DatetimeHelper.format;
 /**
  *
  */
-public class Bytecode implements Cloneable, Serializable {
+public class GremlinLang implements Cloneable, Serializable {
 
     private static final Object[] EMPTY_ARRAY = new Object[]{};
 
@@ -67,10 +67,10 @@ public class Bytecode implements Cloneable, Serializable {
     // private static final ThreadLocal<Integer> paramCount = ThreadLocal.withInitial(() -> 0);
     private final List<OptionsStrategy> optionsStrategies = new ArrayList<>();
 
-    public Bytecode() {
+    public GremlinLang() {
     }
 
-    public Bytecode(final String sourceName, final Object... arguments) {
+    public GremlinLang(final String sourceName, final Object... arguments) {
         this.sourceInstructions.add(new Instruction(sourceName, flattenArguments(arguments)));
         addToGremlin(sourceName, arguments);
     }
@@ -160,8 +160,8 @@ public class Bytecode implements Cloneable, Serializable {
             return predicateAsString((P<?>) arg);
         }
 
-        if (arg instanceof Bytecode || arg instanceof DefaultTraversal) {
-            final Bytecode bytecode = arg instanceof Bytecode ? (Bytecode) arg : ((DefaultTraversal) arg).getGremlincode();
+        if (arg instanceof GremlinLang || arg instanceof DefaultTraversal) {
+            final GremlinLang bytecode = arg instanceof GremlinLang ? (GremlinLang) arg : ((DefaultTraversal) arg).getGremlinLang();
 
             parameters.putAll(bytecode.getParameters());
             return bytecode.getGremlin("__");
@@ -172,7 +172,7 @@ public class Bytecode implements Cloneable, Serializable {
             final Map<Object, Object> asMap = (Map) arg;
             final AtomicBoolean containsTraversalValue = new AtomicBoolean(false);
             asMap.forEach((key, value) -> {
-                if (value instanceof Bytecode || value instanceof DefaultTraversal) {
+                if (value instanceof GremlinLang || value instanceof DefaultTraversal) {
                     containsTraversalValue.set(true);
                 }
             });
@@ -410,8 +410,8 @@ public class Bytecode implements Cloneable, Serializable {
             for (final Object item : (Collection) argument) {
                 addArgumentBinding(bindingsMap, item);
             }
-        } else if (argument instanceof Bytecode)
-            bindingsMap.putAll(((Bytecode) argument).getBindings());
+        } else if (argument instanceof GremlinLang)
+            bindingsMap.putAll(((GremlinLang) argument).getBindings());
     }
 
     @Override
@@ -423,7 +423,7 @@ public class Bytecode implements Cloneable, Serializable {
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
-        final Bytecode bytecode = (Bytecode) o;
+        final GremlinLang bytecode = (GremlinLang) o;
         return Objects.equals(sourceInstructions, bytecode.sourceInstructions) &&
                 Objects.equals(stepInstructions, bytecode.stepInstructions);
     }
@@ -435,9 +435,9 @@ public class Bytecode implements Cloneable, Serializable {
 
     @SuppressWarnings("CloneDoesntDeclareCloneNotSupportedException")
     @Override
-    public Bytecode clone() {
+    public GremlinLang clone() {
         try {
-            final Bytecode clone = (Bytecode) super.clone();
+            final GremlinLang clone = (GremlinLang) super.clone();
             clone.sourceInstructions = new ArrayList<>(this.sourceInstructions);
             clone.stepInstructions = new ArrayList<>(this.stepInstructions);
 
@@ -558,7 +558,7 @@ public class Bytecode implements Cloneable, Serializable {
                 throw new IllegalStateException(String.format(
                         "The child traversal of %s was not spawned anonymously - use the __ class rather than a TraversalSource to construct the child traversal", argument));
 
-            return ((Traversal) argument).asAdmin().getGremlincode();
+            return ((Traversal) argument).asAdmin().getGremlinLang();
         } else if (argument instanceof Map) {
             final Map<Object, Object> map = new LinkedHashMap<>(((Map) argument).size());
             for (final Map.Entry<?, ?> entry : ((Map<?, ?>) argument).entrySet()) {
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java
index 2cd439c0e2..fd0371c688 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Translator.java
@@ -35,7 +35,7 @@ import java.util.UUID;
 import java.util.function.BiFunction;
 
 /**
- * A Translator will translate {@link Bytecode} into another representation. That representation may be a
+ * A Translator will translate {@link GremlinLang} into another representation. That representation may be a
  * Java instance via {@link StepTranslator} or a String script in some language via {@link ScriptTranslator}.
  * The parameterization of Translator is S (traversal source) and T (full translation).
  *
@@ -56,19 +56,19 @@ public interface Translator<S, T> {
     public S getTraversalSource();
 
     /**
-     * Translate {@link Bytecode} into a new representation. Typically, for language translations, the translation is
+     * Translate {@link GremlinLang} into a new representation. Typically, for language translations, the translation is
      * to a string representing the traversal in the respective scripting language.
      *
      * @param bytecode the bytecode representing traversal source and traversal manipulations.
      * @return the translated object
      */
-    public T translate(final Bytecode bytecode);
+    public T translate(final GremlinLang bytecode);
 
     /**
      * Translates a {@link Traversal} into the specified form
      */
     public default T translate(final Traversal<?,?> t) {
-        return translate(t.asAdmin().getGremlincode());
+        return translate(t.asAdmin().getGremlinLang());
     }
 
     /**
@@ -104,8 +104,8 @@ public interface Translator<S, T> {
             @Override
             public Script apply(final String traversalSource, final Object o) {
                 this.script.init();
-                if (o instanceof Bytecode) {
-                    return produceScript(traversalSource, (Bytecode) o);
+                if (o instanceof GremlinLang) {
+                    return produceScript(traversalSource, (GremlinLang) o);
                 } else {
                     return convertToScript(o);
                 }
@@ -222,9 +222,9 @@ public interface Translator<S, T> {
             protected abstract Script produceScript(final TraversalStrategyProxy<?> o);
 
             /**
-             * Take the {@link Bytecode} and writes the syntax directly to the member {@link #script} variable.
+             * Take the {@link GremlinLang} and writes the syntax directly to the member {@link #script} variable.
              */
-            protected abstract Script produceScript(final String traversalSource, final Bytecode o);
+            protected abstract Script produceScript(final String traversalSource, final GremlinLang o);
 
             /**
              * Take the {@link P} and writes the syntax directly to the member {@link #script} variable. This
@@ -233,9 +233,9 @@ public interface Translator<S, T> {
             protected abstract Script produceScript(final P<?> p);
 
             /**
-             * Take the {@link Bytecode} and write the syntax for it directly to the member {@link #script} variable.
+             * Take the {@link GremlinLang} and write the syntax for it directly to the member {@link #script} variable.
              */
-            protected abstract Script produceCardinalityValue(final Bytecode o);
+            protected abstract Script produceCardinalityValue(final GremlinLang o);
 
             /**
              *  For each operator argument, if withParameters set true, try parametrization as follows:
@@ -275,10 +275,10 @@ public interface Translator<S, T> {
              * @return String Repres
              */
             protected Script convertToScript(final Object object) {
-                if (object instanceof Bytecode.Binding) {
-                    return script.getBoundKeyOrAssign(withParameters, ((Bytecode.Binding) object).variable());
-                } else if (object instanceof Bytecode) {
-                    final Bytecode bc = (Bytecode) object;
+                if (object instanceof GremlinLang.Binding) {
+                    return script.getBoundKeyOrAssign(withParameters, ((GremlinLang.Binding) object).variable());
+                } else if (object instanceof GremlinLang) {
+                    final GremlinLang bc = (GremlinLang) object;
                     if (bc.getSourceInstructions().size() == 1 &&
                             bc.getSourceInstructions().get(0).getOperator().equals(CardinalityValueTraversal.class.getSimpleName())) {
                         return produceCardinalityValue(bc);
@@ -286,7 +286,7 @@ public interface Translator<S, T> {
                         return produceScript(getAnonymousTraversalPrefix(), bc);
                     }
                 } else if (object instanceof Traversal) {
-                    return convertToScript(((Traversal) object).asAdmin().getGremlincode());
+                    return convertToScript(((Traversal) object).asAdmin().getGremlinLang());
                 } else if (object instanceof String) {
                     final Object objectOrWrapper = withParameters ? object : getSyntax((String) object);
                     return script.getBoundKeyOrAssign(withParameters, objectOrWrapper);
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
index 222c4199f0..890dd4b94c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Traversal.java
@@ -224,7 +224,7 @@ public interface Traversal<S, E> extends Iterator<E>, Serializable, Cloneable, A
      * @return the updated traversal with respective {@link DiscardStep}.
      */
     public default Traversal<S, E> discard() {
-        this.asAdmin().getGremlincode().addStep(Symbols.discard);
+        this.asAdmin().getGremlinLang().addStep(Symbols.discard);
         return this.asAdmin().addStep(new DiscardStep<>(this.asAdmin()));
     }
 
@@ -234,7 +234,7 @@ public interface Traversal<S, E> extends Iterator<E>, Serializable, Cloneable, A
      * @return the updated traversal with respective {@link ProfileSideEffectStep}.
      */
     public default Traversal<S, TraversalMetrics> profile() {
-        this.asAdmin().getGremlincode().addStep(Symbols.profile);
+        this.asAdmin().getGremlinLang().addStep(Symbols.profile);
         return this.asAdmin()
                 .addStep(new ProfileSideEffectStep<>(this.asAdmin(), ProfileSideEffectStep.DEFAULT_METRICS_KEY))
                 .addStep(new SideEffectCapStep<Object, TraversalMetrics>(this.asAdmin(), ProfileSideEffectStep.DEFAULT_METRICS_KEY));
@@ -324,11 +324,11 @@ public interface Traversal<S, E> extends Iterator<E>, Serializable, Cloneable, A
     public interface Admin<S, E> extends Traversal<S, E> {
 
         /**
-         * Get the {@link Bytecode} associated with the construction of this traversal.
+         * Get the {@link GremlinLang} associated with the construction of this traversal.
          *
          * @return the byte code representation of the traversal
          */
-        public Bytecode getGremlincode();
+        public GremlinLang getGremlinLang();
 
         /**
          * Add an iterator of {@link Traverser.Admin} objects to the head/start of the traversal. Users should
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
index 31f0701038..307fae2d29 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalSource.java
@@ -64,11 +64,11 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public Graph getGraph();
 
     /**
-     * Get the {@link Bytecode} associated with the current state of this traversal source.
+     * Get the {@link GremlinLang} associated with the current state of this traversal source.
      *
      * @return the traversal source byte code
      */
-    public Bytecode getBytecode();
+    public GremlinLang getGremlinLang();
 
     /////////////////////////////
 
@@ -130,7 +130,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default TraversalSource withStrategies(final TraversalStrategy... traversalStrategies) {
         final TraversalSource clone = this.clone();
         clone.getStrategies().addStrategies(traversalStrategies);
-        clone.getBytecode().addSource(TraversalSource.Symbols.withStrategies, traversalStrategies);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withStrategies, traversalStrategies);
         for (final TraversalStrategy traversalStrategy : traversalStrategies) {
             if (traversalStrategy instanceof VertexProgramStrategy) {
                 ((VertexProgramStrategy) traversalStrategy).addGraphComputerStrategies(clone);
@@ -149,7 +149,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default TraversalSource withoutStrategies(final Class<? extends TraversalStrategy>... traversalStrategyClasses) {
         final TraversalSource clone = this.clone();
         clone.getStrategies().removeStrategies(traversalStrategyClasses);
-        clone.getBytecode().addSource(TraversalSource.Symbols.withoutStrategies, traversalStrategyClasses);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withoutStrategies, traversalStrategyClasses);
         return clone;
     }
 
@@ -197,7 +197,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSideEffect(final String key, final Supplier<A> initialValue, final BinaryOperator<A> reducer) {
         final TraversalSource clone = this.clone();
         SideEffectStrategy.addSideEffect(clone.getStrategies(), key, (A) initialValue, reducer);
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSideEffect, key, initialValue, reducer);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSideEffect, key, initialValue, reducer);
         return clone;
     }
 
@@ -213,7 +213,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSideEffect(final String key, final A initialValue, final BinaryOperator<A> reducer) {
         final TraversalSource clone = this.clone();
         SideEffectStrategy.addSideEffect(clone.getStrategies(), key, initialValue, reducer);
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSideEffect, key, initialValue, reducer);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSideEffect, key, initialValue, reducer);
         return clone;
     }
 
@@ -228,7 +228,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSideEffect(final String key, final Supplier<A> initialValue) {
         final TraversalSource clone = this.clone();
         SideEffectStrategy.addSideEffect(clone.getStrategies(), key, (A) initialValue, null);
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSideEffect, key, initialValue);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSideEffect, key, initialValue);
         return clone;
     }
 
@@ -243,7 +243,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSideEffect(final String key, final A initialValue) {
         final TraversalSource clone = this.clone();
         SideEffectStrategy.addSideEffect(clone.getStrategies(), key, initialValue, null);
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSideEffect, key, initialValue);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSideEffect, key, initialValue);
         return clone;
     }
 
@@ -259,7 +259,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSack(final Supplier<A> initialValue, final UnaryOperator<A> splitOperator, final BinaryOperator<A> mergeOperator) {
         final TraversalSource clone = this.clone();
         clone.getStrategies().addStrategies(SackStrategy.<A>build().initialValue(initialValue).splitOperator(splitOperator).mergeOperator(mergeOperator).create());
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSack, initialValue, splitOperator, mergeOperator);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSack, initialValue, splitOperator, mergeOperator);
         return clone;
     }
 
@@ -275,7 +275,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSack(final A initialValue, final UnaryOperator<A> splitOperator, final BinaryOperator<A> mergeOperator) {
         final TraversalSource clone = this.clone();
         clone.getStrategies().addStrategies(SackStrategy.<A>build().initialValue(new ConstantSupplier<>(initialValue)).splitOperator(splitOperator).mergeOperator(mergeOperator).create());
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSack, initialValue, splitOperator, mergeOperator);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSack, initialValue, splitOperator, mergeOperator);
         return clone;
     }
 
@@ -289,7 +289,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSack(final A initialValue) {
         final TraversalSource clone = this.clone();
         clone.getStrategies().addStrategies(SackStrategy.<A>build().initialValue(new ConstantSupplier<>(initialValue)).create());
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSack, initialValue);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSack, initialValue);
         return clone;
     }
 
@@ -303,7 +303,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSack(final Supplier<A> initialValue) {
         final TraversalSource clone = this.clone();
         clone.getStrategies().addStrategies(SackStrategy.<A>build().initialValue(initialValue).create());
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSack, initialValue);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSack, initialValue);
         return clone;
     }
 
@@ -318,7 +318,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSack(final Supplier<A> initialValue, final UnaryOperator<A> splitOperator) {
         final TraversalSource clone = this.clone();
         clone.getStrategies().addStrategies(SackStrategy.<A>build().initialValue(initialValue).splitOperator(splitOperator).create());
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSack, initialValue, splitOperator);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSack, initialValue, splitOperator);
         return clone;
     }
 
@@ -333,7 +333,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSack(final A initialValue, final UnaryOperator<A> splitOperator) {
         final TraversalSource clone = this.clone();
         clone.getStrategies().addStrategies(SackStrategy.<A>build().initialValue(new ConstantSupplier<>(initialValue)).splitOperator(splitOperator).create());
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSack, initialValue, splitOperator);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSack, initialValue, splitOperator);
         return clone;
     }
 
@@ -348,7 +348,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSack(final Supplier<A> initialValue, final BinaryOperator<A> mergeOperator) {
         final TraversalSource clone = this.clone();
         clone.getStrategies().addStrategies(SackStrategy.<A>build().initialValue(initialValue).mergeOperator(mergeOperator).create());
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSack, initialValue, mergeOperator);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSack, initialValue, mergeOperator);
         return clone;
     }
 
@@ -363,7 +363,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
     public default <A> TraversalSource withSack(final A initialValue, final BinaryOperator<A> mergeOperator) {
         final TraversalSource clone = this.clone();
         clone.getStrategies().addStrategies(SackStrategy.<A>build().initialValue(new ConstantSupplier<>(initialValue)).mergeOperator(mergeOperator).create());
-        clone.getBytecode().addSource(TraversalSource.Symbols.withSack, initialValue, mergeOperator);
+        clone.getGremlinLang().addSource(TraversalSource.Symbols.withSack, initialValue, mergeOperator);
         return clone;
     }
 
@@ -373,7 +373,7 @@ public interface TraversalSource extends Cloneable, AutoCloseable {
 
     /**
      * The clone-method should be used to create immutable traversal sources with each call to a configuration "withXXX"-method.
-     * The clone-method should clone the {@link Bytecode}, {@link TraversalStrategies}, mutate the cloned strategies accordingly,
+     * The clone-method should clone the {@link GremlinLang}, {@link TraversalStrategies}, mutate the cloned strategies accordingly,
      * and then return the cloned traversal source leaving the original unaltered.
      *
      * @return the cloned traversal source
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index e6befcfe77..2c44e38268 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
@@ -262,7 +262,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> map(final Function<Traverser<E>, E2> function) {
-        this.asAdmin().getGremlincode().addStep(Symbols.map, function);
+        this.asAdmin().getGremlinLang().addStep(Symbols.map, function);
         return this.asAdmin().addStep(new LambdaMapStep<>(this.asAdmin(), function));
     }
 
@@ -275,7 +275,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> map(final Traversal<?, E2> mapTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.map, mapTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.map, mapTraversal);
         return this.asAdmin().addStep(new TraversalMapStep<>(this.asAdmin(), mapTraversal));
     }
 
@@ -290,7 +290,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> flatMap(final Function<Traverser<E>, Iterator<E2>> function) {
-        this.asAdmin().getGremlincode().addStep(Symbols.flatMap, function);
+        this.asAdmin().getGremlinLang().addStep(Symbols.flatMap, function);
         return this.asAdmin().addStep(new LambdaFlatMapStep<>(this.asAdmin(), function));
     }
 
@@ -305,7 +305,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> flatMap(final Traversal<?, E2> flatMapTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.flatMap, flatMapTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.flatMap, flatMapTraversal);
         return this.asAdmin().addStep(new TraversalFlatMapStep<>(this.asAdmin(), flatMapTraversal));
     }
 
@@ -317,7 +317,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Object> id() {
-        this.asAdmin().getGremlincode().addStep(Symbols.id);
+        this.asAdmin().getGremlinLang().addStep(Symbols.id);
         return this.asAdmin().addStep(new IdStep<>(this.asAdmin()));
     }
 
@@ -329,7 +329,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, String> label() {
-        this.asAdmin().getGremlincode().addStep(Symbols.label);
+        this.asAdmin().getGremlinLang().addStep(Symbols.label);
         return this.asAdmin().addStep(new LabelStep<>(this.asAdmin()));
     }
 
@@ -340,7 +340,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> identity() {
-        this.asAdmin().getGremlincode().addStep(Symbols.identity);
+        this.asAdmin().getGremlinLang().addStep(Symbols.identity);
         return this.asAdmin().addStep(new IdentityStep<>(this.asAdmin()));
     }
 
@@ -352,7 +352,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> constant(final E2 e) {
-        this.asAdmin().getGremlincode().addStep(Symbols.constant, e);
+        this.asAdmin().getGremlinLang().addStep(Symbols.constant, e);
         return this.asAdmin().addStep(new ConstantStep<E, E2>(this.asAdmin(), e));
     }
 
@@ -367,7 +367,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
     public default GraphTraversal<S, Vertex> V(final Object... vertexIdsOrElements) {
         // a single null is [null]
         final Object[] ids = null == vertexIdsOrElements ? new Object[] { null } : vertexIdsOrElements;
-        this.asAdmin().getGremlincode().addStep(Symbols.V, ids);
+        this.asAdmin().getGremlinLang().addStep(Symbols.V, ids);
         return this.asAdmin().addStep(new GraphStep<>(this.asAdmin(), Vertex.class, false, ids));
     }
 
@@ -382,7 +382,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
     public default GraphTraversal<S, Edge> E(final Object... edgeIdsOrElements) {
         // a single null is [null]
         final Object[] ids = null == edgeIdsOrElements ? new Object[] { null } : edgeIdsOrElements;
-        this.asAdmin().getGremlincode().addStep(Symbols.E, ids);
+        this.asAdmin().getGremlinLang().addStep(Symbols.E, ids);
         return this.asAdmin().addStep(new GraphStep<>(this.asAdmin(), Edge.class, false, ids));
     }
 
@@ -396,7 +396,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Vertex> to(final Direction direction, final String... edgeLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.to, direction, edgeLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.to, direction, edgeLabels);
         return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), Vertex.class, direction, edgeLabels));
     }
 
@@ -409,7 +409,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Vertex> out(final String... edgeLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.out, edgeLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.out, edgeLabels);
         return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), Vertex.class, Direction.OUT, edgeLabels));
     }
 
@@ -422,7 +422,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Vertex> in(final String... edgeLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.in, edgeLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.in, edgeLabels);
         return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), Vertex.class, Direction.IN, edgeLabels));
     }
 
@@ -435,7 +435,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Vertex> both(final String... edgeLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.both, edgeLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.both, edgeLabels);
         return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), Vertex.class, Direction.BOTH, edgeLabels));
     }
 
@@ -449,7 +449,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Edge> toE(final Direction direction, final String... edgeLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.toE, direction, edgeLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.toE, direction, edgeLabels);
         return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), Edge.class, direction, edgeLabels));
     }
 
@@ -462,7 +462,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Edge> outE(final String... edgeLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.outE, edgeLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.outE, edgeLabels);
         return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), Edge.class, Direction.OUT, edgeLabels));
     }
 
@@ -475,7 +475,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Edge> inE(final String... edgeLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.inE, edgeLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.inE, edgeLabels);
         return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), Edge.class, Direction.IN, edgeLabels));
     }
 
@@ -488,7 +488,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Edge> bothE(final String... edgeLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.bothE, edgeLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.bothE, edgeLabels);
         return this.asAdmin().addStep(new VertexStep<>(this.asAdmin(), Edge.class, Direction.BOTH, edgeLabels));
     }
 
@@ -501,7 +501,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Vertex> toV(final Direction direction) {
-        this.asAdmin().getGremlincode().addStep(Symbols.toV, direction);
+        this.asAdmin().getGremlinLang().addStep(Symbols.toV, direction);
         return this.asAdmin().addStep(new EdgeVertexStep(this.asAdmin(), direction));
     }
 
@@ -513,7 +513,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Vertex> inV() {
-        this.asAdmin().getGremlincode().addStep(Symbols.inV);
+        this.asAdmin().getGremlinLang().addStep(Symbols.inV);
         return this.asAdmin().addStep(new EdgeVertexStep(this.asAdmin(), Direction.IN));
     }
 
@@ -525,7 +525,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Vertex> outV() {
-        this.asAdmin().getGremlincode().addStep(Symbols.outV);
+        this.asAdmin().getGremlinLang().addStep(Symbols.outV);
         return this.asAdmin().addStep(new EdgeVertexStep(this.asAdmin(), Direction.OUT));
     }
 
@@ -537,7 +537,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Vertex> bothV() {
-        this.asAdmin().getGremlincode().addStep(Symbols.bothV);
+        this.asAdmin().getGremlinLang().addStep(Symbols.bothV);
         return this.asAdmin().addStep(new EdgeVertexStep(this.asAdmin(), Direction.BOTH));
     }
 
@@ -549,7 +549,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Vertex> otherV() {
-        this.asAdmin().getGremlincode().addStep(Symbols.otherV);
+        this.asAdmin().getGremlinLang().addStep(Symbols.otherV);
         return this.asAdmin().addStep(new EdgeOtherVertexStep(this.asAdmin()));
     }
 
@@ -561,7 +561,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> order() {
-        this.asAdmin().getGremlincode().addStep(Symbols.order);
+        this.asAdmin().getGremlinLang().addStep(Symbols.order);
         return this.asAdmin().addStep(new OrderGlobalStep<>(this.asAdmin()));
     }
 
@@ -574,7 +574,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> order(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.order, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.order, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new OrderGlobalStep<>(this.asAdmin()) : new OrderLocalStep<>(this.asAdmin()));
     }
 
@@ -589,7 +589,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, ? extends Property<E2>> properties(final String... propertyKeys) {
-        this.asAdmin().getGremlincode().addStep(Symbols.properties, propertyKeys);
+        this.asAdmin().getGremlinLang().addStep(Symbols.properties, propertyKeys);
         return this.asAdmin().addStep(new PropertiesStep<>(this.asAdmin(), PropertyType.PROPERTY, propertyKeys));
     }
 
@@ -604,7 +604,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> values(final String... propertyKeys) {
-        this.asAdmin().getGremlincode().addStep(Symbols.values, propertyKeys);
+        this.asAdmin().getGremlinLang().addStep(Symbols.values, propertyKeys);
         return this.asAdmin().addStep(new PropertiesStep<>(this.asAdmin(), PropertyType.VALUE, propertyKeys));
     }
 
@@ -619,7 +619,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, Map<String, E2>> propertyMap(final String... propertyKeys) {
-        this.asAdmin().getGremlincode().addStep(Symbols.propertyMap, propertyKeys);
+        this.asAdmin().getGremlinLang().addStep(Symbols.propertyMap, propertyKeys);
         return this.asAdmin().addStep(new PropertyMapStep<>(this.asAdmin(), WithOptions.none, PropertyType.PROPERTY, propertyKeys));
     }
 
@@ -638,7 +638,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.4.4
      */
     public default <E2> GraphTraversal<S, Map<Object, E2>> elementMap(final String... propertyKeys) {
-        this.asAdmin().getGremlincode().addStep(Symbols.elementMap, propertyKeys);
+        this.asAdmin().getGremlinLang().addStep(Symbols.elementMap, propertyKeys);
         return this.asAdmin().addStep(new ElementMapStep<>(this.asAdmin(), propertyKeys));
     }
 
@@ -653,7 +653,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, Map<Object, E2>> valueMap(final String... propertyKeys) {
-        this.asAdmin().getGremlincode().addStep(Symbols.valueMap, propertyKeys);
+        this.asAdmin().getGremlinLang().addStep(Symbols.valueMap, propertyKeys);
         return this.asAdmin().addStep(new PropertyMapStep<>(this.asAdmin(), WithOptions.none, PropertyType.VALUE, propertyKeys));
     }
 
@@ -672,7 +672,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     @Deprecated
     public default <E2> GraphTraversal<S, Map<Object, E2>> valueMap(final boolean includeTokens, final String... propertyKeys) {
-        this.asAdmin().getGremlincode().addStep(Symbols.valueMap, includeTokens, propertyKeys);
+        this.asAdmin().getGremlinLang().addStep(Symbols.valueMap, includeTokens, propertyKeys);
         return this.asAdmin().addStep(new PropertyMapStep<>(this.asAdmin(), WithOptions.all, PropertyType.VALUE, propertyKeys));
     }
 
@@ -684,7 +684,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, String> key() {
-        this.asAdmin().getGremlincode().addStep(Symbols.key);
+        this.asAdmin().getGremlinLang().addStep(Symbols.key);
         return this.asAdmin().addStep(new PropertyKeyStep(this.asAdmin()));
     }
 
@@ -696,7 +696,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> value() {
-        this.asAdmin().getGremlincode().addStep(Symbols.value);
+        this.asAdmin().getGremlinLang().addStep(Symbols.value);
         return this.asAdmin().addStep(new PropertyValueStep<>(this.asAdmin()));
     }
 
@@ -708,7 +708,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Path> path() {
-        this.asAdmin().getGremlincode().addStep(Symbols.path);
+        this.asAdmin().getGremlinLang().addStep(Symbols.path);
         return this.asAdmin().addStep(new PathStep<>(this.asAdmin()));
     }
 
@@ -722,7 +722,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, Map<String, E2>> match(final Traversal<?, ?>... matchTraversals) {
-        this.asAdmin().getGremlincode().addStep(Symbols.match, matchTraversals);
+        this.asAdmin().getGremlinLang().addStep(Symbols.match, matchTraversals);
         return this.asAdmin().addStep(new MatchStep<>(this.asAdmin(), ConnectiveStep.Connective.AND, matchTraversals));
     }
 
@@ -735,7 +735,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> sack() {
-        this.asAdmin().getGremlincode().addStep(Symbols.sack);
+        this.asAdmin().getGremlinLang().addStep(Symbols.sack);
         return this.asAdmin().addStep(new SackStep<>(this.asAdmin()));
     }
 
@@ -748,7 +748,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.1.0-incubating
      */
     public default GraphTraversal<S, Integer> loops() {
-        this.asAdmin().getGremlincode().addStep(Symbols.loops);
+        this.asAdmin().getGremlinLang().addStep(Symbols.loops);
         return this.asAdmin().addStep(new LoopsStep<>(this.asAdmin(), null));
     }
 
@@ -761,7 +761,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.4.0
      */
     public default GraphTraversal<S, Integer> loops(final String loopName) {
-        this.asAdmin().getGremlincode().addStep(Symbols.loops, loopName);
+        this.asAdmin().getGremlinLang().addStep(Symbols.loops, loopName);
         return this.asAdmin().addStep(new LoopsStep<>(this.asAdmin(), loopName));
     }
 
@@ -776,7 +776,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         final String[] projectKeys = new String[otherProjectKeys.length + 1];
         projectKeys[0] = projectKey;
         System.arraycopy(otherProjectKeys, 0, projectKeys, 1, otherProjectKeys.length);
-        this.asAdmin().getGremlincode().addStep(Symbols.project, projectKey, otherProjectKeys);
+        this.asAdmin().getGremlinLang().addStep(Symbols.project, projectKey, otherProjectKeys);
         return this.asAdmin().addStep(new ProjectStep<>(this.asAdmin(), projectKeys));
     }
 
@@ -797,7 +797,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         selectKeys[0] = selectKey1;
         selectKeys[1] = selectKey2;
         System.arraycopy(otherSelectKeys, 0, selectKeys, 2, otherSelectKeys.length);
-        this.asAdmin().getGremlincode().addStep(Symbols.select, pop, selectKey1, selectKey2, otherSelectKeys);
+        this.asAdmin().getGremlinLang().addStep(Symbols.select, pop, selectKey1, selectKey2, otherSelectKeys);
         return this.asAdmin().addStep(new SelectStep<>(this.asAdmin(), pop, selectKeys));
     }
 
@@ -817,7 +817,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         selectKeys[0] = selectKey1;
         selectKeys[1] = selectKey2;
         System.arraycopy(otherSelectKeys, 0, selectKeys, 2, otherSelectKeys.length);
-        this.asAdmin().getGremlincode().addStep(Symbols.select, selectKey1, selectKey2, otherSelectKeys);
+        this.asAdmin().getGremlinLang().addStep(Symbols.select, selectKey1, selectKey2, otherSelectKeys);
         return this.asAdmin().addStep(new SelectStep<>(this.asAdmin(), Pop.last, selectKeys));
     }
 
@@ -831,7 +831,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> select(final Pop pop, final String selectKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.select, pop, selectKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.select, pop, selectKey);
         return this.asAdmin().addStep(new SelectOneStep<>(this.asAdmin(), pop, selectKey));
     }
 
@@ -846,7 +846,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> select(final String selectKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.select, selectKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.select, selectKey);
         return this.asAdmin().addStep(new SelectOneStep<>(this.asAdmin(), Pop.last, selectKey));
     }
 
@@ -860,7 +860,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.3.3
      */
     public default <E2> GraphTraversal<S, E2> select(final Pop pop, final Traversal<S, E2> keyTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.select, pop, keyTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.select, pop, keyTraversal);
         return this.asAdmin().addStep(new TraversalSelectStep<>(this.asAdmin(), pop, keyTraversal));
     }
 
@@ -875,7 +875,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.3.3
      */
     public default <E2> GraphTraversal<S, E2> select(final Traversal<S, E2> keyTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.select, keyTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.select, keyTraversal);
         return this.asAdmin().addStep(new TraversalSelectStep<>(this.asAdmin(), null, keyTraversal));
     }
 
@@ -888,7 +888,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.1.0-incubating
      */
     public default <E2> GraphTraversal<S, Collection<E2>> select(final Column column) {
-        this.asAdmin().getGremlincode().addStep(Symbols.select, column);
+        this.asAdmin().getGremlinLang().addStep(Symbols.select, column);
         return this.asAdmin().addStep(new TraversalMapStep<>(this.asAdmin(), new ColumnTraversal(column)));
     }
 
@@ -901,7 +901,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> unfold() {
-        this.asAdmin().getGremlincode().addStep(Symbols.unfold);
+        this.asAdmin().getGremlinLang().addStep(Symbols.unfold);
         return this.asAdmin().addStep(new UnfoldStep<>(this.asAdmin()));
     }
 
@@ -913,7 +913,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, List<E>> fold() {
-        this.asAdmin().getGremlincode().addStep(Symbols.fold);
+        this.asAdmin().getGremlinLang().addStep(Symbols.fold);
         return this.asAdmin().addStep(new FoldStep<>(this.asAdmin()));
     }
 
@@ -928,7 +928,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> fold(final E2 seed, final BiFunction<E2, E, E2> foldFunction) {
-        this.asAdmin().getGremlincode().addStep(Symbols.fold, seed, foldFunction);
+        this.asAdmin().getGremlinLang().addStep(Symbols.fold, seed, foldFunction);
         return this.asAdmin().addStep(new FoldStep<>(this.asAdmin(), new ConstantSupplier<>(seed), foldFunction));
     }
 
@@ -941,7 +941,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Long> count() {
-        this.asAdmin().getGremlincode().addStep(Symbols.count);
+        this.asAdmin().getGremlinLang().addStep(Symbols.count);
         return this.asAdmin().addStep(new CountGlobalStep<>(this.asAdmin()));
     }
 
@@ -954,7 +954,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Long> count(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.count, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.count, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new CountGlobalStep<>(this.asAdmin()) : new CountLocalStep<>(this.asAdmin()));
     }
 
@@ -967,7 +967,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2 extends Number> GraphTraversal<S, E2> sum() {
-        this.asAdmin().getGremlincode().addStep(Symbols.sum);
+        this.asAdmin().getGremlinLang().addStep(Symbols.sum);
         return this.asAdmin().addStep(new SumGlobalStep<>(this.asAdmin()));
     }
 
@@ -980,7 +980,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2 extends Number> GraphTraversal<S, E2> sum(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.sum, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.sum, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new SumGlobalStep<>(this.asAdmin()) : new SumLocalStep<>(this.asAdmin()));
     }
 
@@ -992,7 +992,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2 extends Comparable> GraphTraversal<S, E2> max() {
-        this.asAdmin().getGremlincode().addStep(Symbols.max);
+        this.asAdmin().getGremlinLang().addStep(Symbols.max);
         return this.asAdmin().addStep(new MaxGlobalStep<>(this.asAdmin()));
     }
 
@@ -1004,7 +1004,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2 extends Comparable> GraphTraversal<S, E2> max(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.max, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.max, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new MaxGlobalStep<>(this.asAdmin()) : new MaxLocalStep<>(this.asAdmin()));
     }
 
@@ -1016,7 +1016,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2 extends Comparable> GraphTraversal<S, E2> min() {
-        this.asAdmin().getGremlincode().addStep(Symbols.min);
+        this.asAdmin().getGremlinLang().addStep(Symbols.min);
         return this.asAdmin().addStep(new MinGlobalStep<>(this.asAdmin()));
     }
 
@@ -1028,7 +1028,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2 extends Comparable> GraphTraversal<S, E2> min(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.min, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.min, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new MinGlobalStep<E2>(this.asAdmin()) : new MinLocalStep<>(this.asAdmin()));
     }
 
@@ -1040,7 +1040,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2 extends Number> GraphTraversal<S, E2> mean() {
-        this.asAdmin().getGremlincode().addStep(Symbols.mean);
+        this.asAdmin().getGremlinLang().addStep(Symbols.mean);
         return this.asAdmin().addStep(new MeanGlobalStep<>(this.asAdmin()));
     }
 
@@ -1052,7 +1052,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2 extends Number> GraphTraversal<S, E2> mean(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.mean, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.mean, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new MeanGlobalStep(this.asAdmin()) : new MeanLocalStep(this.asAdmin()));
     }
 
@@ -1065,7 +1065,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.1.0-incubating
      */
     public default <K, V> GraphTraversal<S, Map<K, V>> group() {
-        this.asAdmin().getGremlincode().addStep(Symbols.group);
+        this.asAdmin().getGremlinLang().addStep(Symbols.group);
         return this.asAdmin().addStep(new GroupStep<>(this.asAdmin()));
     }
 
@@ -1078,7 +1078,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <K> GraphTraversal<S, Map<K, Long>> groupCount() {
-        this.asAdmin().getGremlincode().addStep(Symbols.groupCount);
+        this.asAdmin().getGremlinLang().addStep(Symbols.groupCount);
         return this.asAdmin().addStep(new GroupCountStep<>(this.asAdmin()));
     }
 
@@ -1090,7 +1090,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Tree> tree() {
-        this.asAdmin().getGremlincode().addStep(Symbols.tree);
+        this.asAdmin().getGremlinLang().addStep(Symbols.tree);
         return this.asAdmin().addStep(new TreeStep<>(this.asAdmin()));
     }
 
@@ -1104,7 +1104,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default GraphTraversal<S, Vertex> addV(final String vertexLabel) {
         if (null == vertexLabel) throw new IllegalArgumentException("vertexLabel cannot be null");
-        this.asAdmin().getGremlincode().addStep(Symbols.addV, vertexLabel);
+        this.asAdmin().getGremlinLang().addStep(Symbols.addV, vertexLabel);
         return this.asAdmin().addStep(new AddVertexStep<>(this.asAdmin(), vertexLabel));
     }
 
@@ -1117,7 +1117,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default GraphTraversal<S, Vertex> addV(final Traversal<?, String> vertexLabelTraversal) {
         if (null == vertexLabelTraversal) throw new IllegalArgumentException("vertexLabelTraversal cannot be null");
-        this.asAdmin().getGremlincode().addStep(Symbols.addV, vertexLabelTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.addV, vertexLabelTraversal);
         return this.asAdmin().addStep(new AddVertexStep<>(this.asAdmin(), vertexLabelTraversal.asAdmin()));
     }
 
@@ -1129,7 +1129,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.1.0-incubating
      */
     public default GraphTraversal<S, Vertex> addV() {
-        this.asAdmin().getGremlincode().addStep(Symbols.addV);
+        this.asAdmin().getGremlinLang().addStep(Symbols.addV);
         return this.asAdmin().addStep(new AddVertexStep<>(this.asAdmin(), (String) null));
     }
 
@@ -1142,7 +1142,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     public default GraphTraversal<S, Vertex> mergeV() {
-        this.asAdmin().getGremlincode().addStep(Symbols.mergeV);
+        this.asAdmin().getGremlinLang().addStep(Symbols.mergeV);
         final MergeVertexStep<S> step = new MergeVertexStep<>(this.asAdmin(), false);
         return this.asAdmin().addStep(step);
     }
@@ -1157,7 +1157,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     public default GraphTraversal<S, Vertex> mergeV(final Map<Object, Object> searchCreate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.mergeV, searchCreate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.mergeV, searchCreate);
         final MergeVertexStep<S> step = new MergeVertexStep<>(this.asAdmin(), false, searchCreate);
         return this.asAdmin().addStep(step);
     }
@@ -1173,7 +1173,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      *  @since 3.6.0
      */
     public default GraphTraversal<S, Vertex> mergeV(final Traversal<?, Map<Object, Object>> searchCreate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.mergeV, searchCreate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.mergeV, searchCreate);
         final MergeVertexStep<S> step = null == searchCreate ? new MergeVertexStep(this.asAdmin(), false, (Map) null) :
                 new MergeVertexStep(this.asAdmin(), false, searchCreate.asAdmin());
         return this.asAdmin().addStep(step);
@@ -1186,7 +1186,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     public default GraphTraversal<S, Edge> mergeE() {
-        this.asAdmin().getGremlincode().addStep(Symbols.mergeE);
+        this.asAdmin().getGremlinLang().addStep(Symbols.mergeE);
         final MergeEdgeStep<S> step = new MergeEdgeStep(this.asAdmin(), false);
         return this.asAdmin().addStep(step);
     }
@@ -1200,7 +1200,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default GraphTraversal<S, Edge> mergeE(final Map<Object, Object> searchCreate) {
         // get a construction time exception if the Map is bad
-        this.asAdmin().getGremlincode().addStep(Symbols.mergeE, searchCreate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.mergeE, searchCreate);
         final MergeEdgeStep<S> step = new MergeEdgeStep(this.asAdmin(), false, searchCreate);
         return this.asAdmin().addStep(step);
     }
@@ -1213,7 +1213,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     public default GraphTraversal<S, Edge> mergeE(final Traversal<?, Map<Object, Object>> searchCreate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.mergeE, searchCreate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.mergeE, searchCreate);
 
         final MergeEdgeStep<S> step = null == searchCreate ? new MergeEdgeStep(this.asAdmin(), false,  (Map) null) :
                 new MergeEdgeStep(this.asAdmin(), false, searchCreate.asAdmin());
@@ -1229,7 +1229,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.1.0-incubating
      */
     public default GraphTraversal<S, Edge> addE(final String edgeLabel) {
-        this.asAdmin().getGremlincode().addStep(Symbols.addE, edgeLabel);
+        this.asAdmin().getGremlinLang().addStep(Symbols.addE, edgeLabel);
         return this.asAdmin().addStep(new AddEdgeStep<>(this.asAdmin(), edgeLabel));
     }
 
@@ -1241,7 +1241,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.3.1
      */
     public default GraphTraversal<S, Edge> addE(final Traversal<?, String> edgeLabelTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.addE, edgeLabelTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.addE, edgeLabelTraversal);
         return this.asAdmin().addStep(new AddEdgeStep<>(this.asAdmin(), null == edgeLabelTraversal ? null : edgeLabelTraversal.asAdmin()));
     }
 
@@ -1259,7 +1259,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
             throw new IllegalArgumentException(String.format(
                     "The to() step cannot follow %s", prev.getClass().getSimpleName()));
 
-        this.asAdmin().getGremlincode().addStep(Symbols.to, toStepLabel);
+        this.asAdmin().getGremlinLang().addStep(Symbols.to, toStepLabel);
         ((FromToModulating) prev).addTo(toStepLabel);
         return this;
     }
@@ -1278,7 +1278,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
             throw new IllegalArgumentException(String.format(
                     "The from() step cannot follow %s", prev.getClass().getSimpleName()));
 
-        this.asAdmin().getGremlincode().addStep(Symbols.from, fromStepLabel);
+        this.asAdmin().getGremlinLang().addStep(Symbols.from, fromStepLabel);
         ((FromToModulating) prev).addFrom(fromStepLabel);
         return this;
     }
@@ -1298,7 +1298,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
             throw new IllegalArgumentException(String.format(
                     "The to() step cannot follow %s", prev.getClass().getSimpleName()));
 
-        this.asAdmin().getGremlincode().addStep(Symbols.to, toVertex);
+        this.asAdmin().getGremlinLang().addStep(Symbols.to, toVertex);
         ((FromToModulating) prev).addTo(toVertex.asAdmin());
         return this;
     }
@@ -1318,7 +1318,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
             throw new IllegalArgumentException(String.format(
                     "The from() step cannot follow %s", prev.getClass().getSimpleName()));
 
-        this.asAdmin().getGremlincode().addStep(Symbols.from, fromVertex);
+        this.asAdmin().getGremlinLang().addStep(Symbols.from, fromVertex);
         ((FromToModulating) prev).addFrom(fromVertex.asAdmin());
         return this;
     }
@@ -1338,7 +1338,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
             throw new IllegalArgumentException(String.format(
                     "The to() step cannot follow %s", prev.getClass().getSimpleName()));
 
-        this.asAdmin().getGremlincode().addStep(Symbols.to, toVertex);
+        this.asAdmin().getGremlinLang().addStep(Symbols.to, toVertex);
         ((FromToModulating) prev).addTo(__.constant(toVertex).asAdmin());
         return this;
     }
@@ -1358,7 +1358,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
             throw new IllegalArgumentException(String.format(
                     "The from() step cannot follow %s", prev.getClass().getSimpleName()));
 
-        this.asAdmin().getGremlincode().addStep(Symbols.from, fromVertex);
+        this.asAdmin().getGremlinLang().addStep(Symbols.from, fromVertex);
         ((FromToModulating) prev).addFrom(__.constant(fromVertex).asAdmin());
         return this;
     }
@@ -1371,7 +1371,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.3.1
      */
     public default GraphTraversal<S, Double> math(final String expression) {
-        this.asAdmin().getGremlincode().addStep(Symbols.math, expression);
+        this.asAdmin().getGremlinLang().addStep(Symbols.math, expression);
         return this.asAdmin().addStep(new MathStep<>(this.asAdmin(), expression));
     }
 
@@ -1383,7 +1383,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     default GraphTraversal<S, Element> element() {
-        this.asAdmin().getGremlincode().addStep(Symbols.element);
+        this.asAdmin().getGremlinLang().addStep(Symbols.element);
         return this.asAdmin().addStep(new ElementStep<>(this.asAdmin()));
     }
 
@@ -1396,7 +1396,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     default <E> GraphTraversal<S, E> call(final String service) {
-        this.asAdmin().getGremlincode().addStep(Symbols.call, service);
+        this.asAdmin().getGremlinLang().addStep(Symbols.call, service);
         final CallStep<S,E> call = new CallStep<>(this.asAdmin(), false, service);
         return this.asAdmin().addStep(call);
     }
@@ -1411,7 +1411,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     default <E> GraphTraversal<S, E> call(final String service, final Map params) {
-        this.asAdmin().getGremlincode().addStep(Symbols.call, service, params);
+        this.asAdmin().getGremlinLang().addStep(Symbols.call, service, params);
         final CallStep<S,E> call = new CallStep<>(this.asAdmin(), false, service, params);
         return this.asAdmin().addStep(call);
     }
@@ -1426,7 +1426,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     default <E> GraphTraversal<S, E> call(final String service, final Traversal<?, Map<?,?>> childTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.call, service, childTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.call, service, childTraversal);
         final CallStep<S,E> step = null == childTraversal ? new CallStep(this.asAdmin(), false, service) :
                 new CallStep(this.asAdmin(), false, service, new LinkedHashMap(), childTraversal.asAdmin());
         return this.asAdmin().addStep(step);
@@ -1445,7 +1445,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     default <E> GraphTraversal<S, E> call(final String service, final Map params, final Traversal<?, Map<?,?>> childTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.call, service, params, childTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.call, service, params, childTraversal);
         final CallStep<S,E> step = null == childTraversal ? new CallStep(this.asAdmin(), false, service, params) :
                 new CallStep(this.asAdmin(), false, service, params, childTraversal.asAdmin());
         return this.asAdmin().addStep(step);
@@ -1461,7 +1461,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> concat(final Traversal<?, String> concatTraversal, final Traversal<?, String>... otherConcatTraversals) {
-        this.asAdmin().getGremlincode().addStep(Symbols.concat, concatTraversal, otherConcatTraversals);
+        this.asAdmin().getGremlinLang().addStep(Symbols.concat, concatTraversal, otherConcatTraversals);
         return this.asAdmin().addStep(new ConcatStep<>(this.asAdmin(), concatTraversal, otherConcatTraversals));
     }
 
@@ -1474,7 +1474,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.0
      */
     public default GraphTraversal<S, String> concat(final String... concatStrings) {
-        this.asAdmin().getGremlincode().addStep(Symbols.concat, concatStrings);
+        this.asAdmin().getGremlinLang().addStep(Symbols.concat, concatStrings);
         return this.asAdmin().addStep(new ConcatStep<>(this.asAdmin(), concatStrings));
     }
 
@@ -1486,7 +1486,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> asString() {
-        this.asAdmin().getGremlincode().addStep(Symbols.asString);
+        this.asAdmin().getGremlinLang().addStep(Symbols.asString);
         return this.asAdmin().addStep(new AsStringGlobalStep<>(this.asAdmin()));
     }
 
@@ -1499,7 +1499,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> asString(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.asString, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.asString, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new AsStringGlobalStep<>(this.asAdmin()) : new AsStringLocalStep<>(this.asAdmin()));
     }
 
@@ -1512,7 +1512,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, Integer> length() {
-        this.asAdmin().getGremlincode().addStep(Symbols.length);
+        this.asAdmin().getGremlinLang().addStep(Symbols.length);
         return this.asAdmin().addStep(new LengthGlobalStep<>(this.asAdmin()));
     }
 
@@ -1526,7 +1526,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> length(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.length, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.length, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new LengthGlobalStep<>(this.asAdmin()) : new LengthLocalStep<>(this.asAdmin()));
     }
 
@@ -1539,7 +1539,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> toLower() {
-        this.asAdmin().getGremlincode().addStep(Symbols.toLower);
+        this.asAdmin().getGremlinLang().addStep(Symbols.toLower);
         return this.asAdmin().addStep(new ToLowerGlobalStep<>(this.asAdmin()));
     }
 
@@ -1553,7 +1553,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> toLower(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.toLower, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.toLower, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new ToLowerGlobalStep<>(this.asAdmin()) : new ToLowerLocalStep<>(this.asAdmin()));
     }
 
@@ -1566,7 +1566,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> toUpper() {
-        this.asAdmin().getGremlincode().addStep(Symbols.toUpper);
+        this.asAdmin().getGremlinLang().addStep(Symbols.toUpper);
         return this.asAdmin().addStep(new ToUpperGlobalStep<>(this.asAdmin()));
     }
 
@@ -1580,7 +1580,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> toUpper(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.toUpper, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.toUpper, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new ToUpperGlobalStep<>(this.asAdmin()) : new ToUpperLocalStep<>(this.asAdmin()));
     }
 
@@ -1594,7 +1594,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> trim() {
-        this.asAdmin().getGremlincode().addStep(Symbols.trim);
+        this.asAdmin().getGremlinLang().addStep(Symbols.trim);
         return this.asAdmin().addStep(new TrimGlobalStep<>(this.asAdmin()));
     }
 
@@ -1609,7 +1609,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> trim(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.trim, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.trim, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new TrimGlobalStep<>(this.asAdmin()) : new TrimLocalStep<>(this.asAdmin()));
     }
 
@@ -1623,7 +1623,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> lTrim() {
-        this.asAdmin().getGremlincode().addStep(Symbols.lTrim);
+        this.asAdmin().getGremlinLang().addStep(Symbols.lTrim);
         return this.asAdmin().addStep(new LTrimGlobalStep<>(this.asAdmin()));
     }
 
@@ -1639,7 +1639,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> lTrim(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.lTrim, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.lTrim, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new LTrimGlobalStep<>(this.asAdmin()) : new LTrimLocalStep<>(this.asAdmin()));
     }
 
@@ -1653,7 +1653,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> rTrim() {
-        this.asAdmin().getGremlincode().addStep(Symbols.rTrim);
+        this.asAdmin().getGremlinLang().addStep(Symbols.rTrim);
         return this.asAdmin().addStep(new RTrimGlobalStep<>(this.asAdmin()));
     }
 
@@ -1668,7 +1668,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> rTrim(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.rTrim, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.rTrim, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new RTrimGlobalStep<>(this.asAdmin()) : new RTrimLocalStep<>(this.asAdmin()));
     }
 
@@ -1680,7 +1680,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> reverse() {
-        this.asAdmin().getGremlincode().addStep(Symbols.reverse);
+        this.asAdmin().getGremlinLang().addStep(Symbols.reverse);
         return this.asAdmin().addStep(new ReverseStep<>(this.asAdmin()));
     }
 
@@ -1697,7 +1697,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> replace(final String oldChar, final String newChar) {
-        this.asAdmin().getGremlincode().addStep(Symbols.replace, oldChar, newChar);
+        this.asAdmin().getGremlinLang().addStep(Symbols.replace, oldChar, newChar);
         return this.asAdmin().addStep(new ReplaceGlobalStep<>(this.asAdmin(), oldChar, newChar));
     }
 
@@ -1715,7 +1715,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> replace(final Scope scope, final String oldChar, final String newChar) {
-        this.asAdmin().getGremlincode().addStep(Symbols.replace, scope, oldChar, newChar);
+        this.asAdmin().getGremlinLang().addStep(Symbols.replace, scope, oldChar, newChar);
         return this.asAdmin().addStep(scope.equals(Scope.global) ?
                 new ReplaceGlobalStep<>(this.asAdmin(), oldChar, newChar) : new ReplaceLocalStep<>(this.asAdmin(), oldChar, newChar));
     }
@@ -1732,7 +1732,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, List<String>> split(final String separator) {
-        this.asAdmin().getGremlincode().addStep(Symbols.split, separator);
+        this.asAdmin().getGremlinLang().addStep(Symbols.split, separator);
         return this.asAdmin().addStep(new SplitGlobalStep<>(this.asAdmin(), separator));
     }
 
@@ -1749,7 +1749,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, List<E2>> split(final Scope scope, final String separator) {
-        this.asAdmin().getGremlincode().addStep(Symbols.split, scope, separator);
+        this.asAdmin().getGremlinLang().addStep(Symbols.split, scope, separator);
         return this.asAdmin().addStep(scope.equals(Scope.global) ?
                 new SplitGlobalStep<>(this.asAdmin(), separator) : new SplitLocalStep<>(this.asAdmin(), separator));
     }
@@ -1766,7 +1766,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> substring(final int startIndex) {
-        this.asAdmin().getGremlincode().addStep(Symbols.substring, startIndex);
+        this.asAdmin().getGremlinLang().addStep(Symbols.substring, startIndex);
         return this.asAdmin().addStep(new SubstringGlobalStep<>(this.asAdmin(), startIndex));
     }
 
@@ -1783,7 +1783,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> substring(final Scope scope, final int startIndex) {
-        this.asAdmin().getGremlincode().addStep(Symbols.substring, scope, startIndex);
+        this.asAdmin().getGremlinLang().addStep(Symbols.substring, scope, startIndex);
         return this.asAdmin().addStep(scope.equals(Scope.global) ?
                 new SubstringGlobalStep<>(this.asAdmin(), startIndex) : new SubstringLocalStep<>(this.asAdmin(), startIndex));
     }
@@ -1803,7 +1803,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> substring(final int startIndex, final int endIndex) {
-        this.asAdmin().getGremlincode().addStep(Symbols.substring, startIndex, endIndex);
+        this.asAdmin().getGremlinLang().addStep(Symbols.substring, startIndex, endIndex);
         return this.asAdmin().addStep(new SubstringGlobalStep<>(this.asAdmin(), startIndex, endIndex));
     }
 
@@ -1823,7 +1823,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> substring(final Scope scope, final int startIndex, final int endIndex) {
-        this.asAdmin().getGremlincode().addStep(Symbols.substring, scope, startIndex, endIndex);
+        this.asAdmin().getGremlinLang().addStep(Symbols.substring, scope, startIndex, endIndex);
         return this.asAdmin().addStep(scope.equals(Scope.global) ?
                 new SubstringGlobalStep<>(this.asAdmin(), startIndex, endIndex) : new SubstringLocalStep<>(this.asAdmin(), startIndex, endIndex));
     }
@@ -1836,7 +1836,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> format(final String format) {
-        this.asAdmin().getGremlincode().addStep(Symbols.format, format);
+        this.asAdmin().getGremlinLang().addStep(Symbols.format, format);
         return this.asAdmin().addStep(new FormatStep<>(this.asAdmin(), format));
     }
 
@@ -1848,7 +1848,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, Date> asDate() {
-        this.asAdmin().getGremlincode().addStep(Symbols.asDate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.asDate);
         return this.asAdmin().addStep(new AsDateStep<>(this.asAdmin()));
     }
 
@@ -1860,7 +1860,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, Date> dateAdd(final DT dateToken, final int value) {
-        this.asAdmin().getGremlincode().addStep(Symbols.dateAdd, dateToken, value);
+        this.asAdmin().getGremlinLang().addStep(Symbols.dateAdd, dateToken, value);
         return this.asAdmin().addStep(new DateAddStep<>(this.asAdmin(), dateToken, value));
     }
 
@@ -1872,7 +1872,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, Long> dateDiff(final Date value) {
-        this.asAdmin().getGremlincode().addStep(Symbols.dateDiff, value);
+        this.asAdmin().getGremlinLang().addStep(Symbols.dateDiff, value);
         return this.asAdmin().addStep(new DateDiffStep<>(this.asAdmin(), value));
     }
 
@@ -1884,7 +1884,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, Long> dateDiff(final Traversal<?, Date> dateTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.dateDiff, dateTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.dateDiff, dateTraversal);
         return this.asAdmin().addStep(new DateDiffStep<>(this.asAdmin(), dateTraversal));
     }
 
@@ -1896,7 +1896,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, Set<?>> difference(final Object values) {
-        this.asAdmin().getGremlincode().addStep(Symbols.difference, values);
+        this.asAdmin().getGremlinLang().addStep(Symbols.difference, values);
         return this.asAdmin().addStep(new DifferenceStep<>(this.asAdmin(), values));
     }
 
@@ -1908,7 +1908,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, Set<?>> disjunct(final Object values) {
-        this.asAdmin().getGremlincode().addStep(Symbols.disjunct, values);
+        this.asAdmin().getGremlinLang().addStep(Symbols.disjunct, values);
         return this.asAdmin().addStep(new DisjunctStep<>(this.asAdmin(), values));
     }
 
@@ -1920,7 +1920,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, Set<?>> intersect(final Object values) {
-        this.asAdmin().getGremlincode().addStep(Symbols.intersect, values);
+        this.asAdmin().getGremlinLang().addStep(Symbols.intersect, values);
         return this.asAdmin().addStep(new IntersectStep<>(this.asAdmin(), values));
     }
 
@@ -1932,7 +1932,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, String> conjoin(final String delimiter) {
-        this.asAdmin().getGremlincode().addStep(Symbols.conjoin, delimiter);
+        this.asAdmin().getGremlinLang().addStep(Symbols.conjoin, delimiter);
         return this.asAdmin().addStep(new ConjoinStep<>(this.asAdmin(), delimiter));
     }
 
@@ -1944,7 +1944,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <E2> GraphTraversal<S, E2> merge(final Object values) {
-        this.asAdmin().getGremlincode().addStep(Symbols.merge, values);
+        this.asAdmin().getGremlinLang().addStep(Symbols.merge, values);
         return this.asAdmin().addStep(new TraversalMergeStep<>(this.asAdmin(), values));
     }
 
@@ -1956,7 +1956,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, List<?>> combine(final Object values) {
-        this.asAdmin().getGremlincode().addStep(Symbols.combine, values);
+        this.asAdmin().getGremlinLang().addStep(Symbols.combine, values);
         return this.asAdmin().addStep(new CombineStep<>(this.asAdmin(), values));
     }
 
@@ -1968,7 +1968,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default GraphTraversal<S, List<List<?>>> product(final Object values) {
-        this.asAdmin().getGremlincode().addStep(Symbols.product, values);
+        this.asAdmin().getGremlinLang().addStep(Symbols.product, values);
         return this.asAdmin().addStep(new ProductStep<>(this.asAdmin(), values));
     }
 
@@ -1984,7 +1984,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> filter(final Predicate<Traverser<E>> predicate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.filter, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.filter, predicate);
         return this.asAdmin().addStep(new LambdaFilterStep<>(this.asAdmin(), predicate));
     }
 
@@ -1998,7 +1998,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> filter(final Traversal<?, ?> filterTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.filter, filterTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.filter, filterTraversal);
         return this.asAdmin().addStep(new TraversalFilterStep<>(this.asAdmin(), (Traversal) filterTraversal));
     }
 
@@ -2023,7 +2023,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> or(final Traversal<?, ?>... orTraversals) {
-        this.asAdmin().getGremlincode().addStep(Symbols.or, orTraversals);
+        this.asAdmin().getGremlinLang().addStep(Symbols.or, orTraversals);
         return this.asAdmin().addStep(new OrStep(this.asAdmin(), orTraversals));
     }
 
@@ -2036,7 +2036,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> and(final Traversal<?, ?>... andTraversals) {
-        this.asAdmin().getGremlincode().addStep(Symbols.and, andTraversals);
+        this.asAdmin().getGremlinLang().addStep(Symbols.and, andTraversals);
         return this.asAdmin().addStep(new AndStep(this.asAdmin(), andTraversals));
     }
 
@@ -2051,7 +2051,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
     public default GraphTraversal<S, E> inject(final E... injections) {
         // a single null is [null]
         final E[] s = null == injections ? (E[]) new Object[] { null } : injections;
-        this.asAdmin().getGremlincode().addStep(Symbols.inject, s);
+        this.asAdmin().getGremlinLang().addStep(Symbols.inject, s);
         return this.asAdmin().addStep(new InjectStep<>(this.asAdmin(), s));
     }
 
@@ -2065,7 +2065,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> dedup(final Scope scope, final String... dedupLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.dedup, scope, dedupLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.dedup, scope, dedupLabels);
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new DedupGlobalStep<>(this.asAdmin(), dedupLabels) : new DedupLocalStep(this.asAdmin()));
     }
 
@@ -2078,7 +2078,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> dedup(final String... dedupLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.dedup, dedupLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.dedup, dedupLabels);
         return this.asAdmin().addStep(new DedupGlobalStep<>(this.asAdmin(), dedupLabels));
     }
 
@@ -2094,7 +2094,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> where(final String startKey, final P<String> predicate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.where, startKey, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.where, startKey, predicate);
         return this.asAdmin().addStep(new WherePredicateStep<>(this.asAdmin(), Optional.ofNullable(startKey), predicate));
     }
 
@@ -2109,7 +2109,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> where(final P<String> predicate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.where, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.where, predicate);
         return this.asAdmin().addStep(new WherePredicateStep<>(this.asAdmin(), Optional.empty(), predicate));
     }
 
@@ -2124,7 +2124,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> where(final Traversal<?, ?> whereTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.where, whereTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.where, whereTraversal);
         return TraversalHelper.getVariableLocations(whereTraversal.asAdmin()).isEmpty() ?
                 this.asAdmin().addStep(new TraversalFilterStep<>(this.asAdmin(), (Traversal) whereTraversal)) :
                 this.asAdmin().addStep(new WhereTraversalStep<>(this.asAdmin(), whereTraversal));
@@ -2145,7 +2145,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         if (null == predicate)
             return has(propertyKey, (Object) null);
 
-        this.asAdmin().getGremlincode().addStep(Symbols.has, propertyKey, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.has, propertyKey, predicate);
         return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(propertyKey, predicate));
     }
 
@@ -2167,7 +2167,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         if (null == predicate)
             return has(accessor, (Object) null);
 
-        this.asAdmin().getGremlincode().addStep(Symbols.has, accessor, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.has, accessor, predicate);
         return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(accessor.getAccessor(), predicate));
     }
 
@@ -2186,7 +2186,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         else if (value instanceof Traversal)
             return this.has(propertyKey, (Traversal) value);
         else {
-            this.asAdmin().getGremlincode().addStep(Symbols.has, propertyKey, value);
+            this.asAdmin().getGremlinLang().addStep(Symbols.has, propertyKey, value);
             return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(propertyKey, P.eq(value)));
         }
     }
@@ -2209,7 +2209,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         else if (value instanceof Traversal)
             return this.has(accessor, (Traversal) value);
         else {
-            this.asAdmin().getGremlincode().addStep(Symbols.has, accessor, value);
+            this.asAdmin().getGremlinLang().addStep(Symbols.has, accessor, value);
             return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(accessor.getAccessor(), P.eq(value)));
         }
     }
@@ -2225,7 +2225,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> has(final String label, final String propertyKey, final P<?> predicate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.has, label, propertyKey, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.has, label, propertyKey, predicate);
         TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.label.getAccessor(), P.eq(label)));
         return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(propertyKey, predicate));
     }
@@ -2241,7 +2241,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> has(final String label, final String propertyKey, final Object value) {
-        this.asAdmin().getGremlincode().addStep(Symbols.has, label, propertyKey, value);
+        this.asAdmin().getGremlinLang().addStep(Symbols.has, label, propertyKey, value);
         TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.label.getAccessor(), P.eq(label)));
         return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(propertyKey, value instanceof P ? (P) value : P.eq(value)));
     }
@@ -2265,7 +2265,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         if (null == propertyTraversal)
             return has(accessor, (Object) null);
 
-        this.asAdmin().getGremlincode().addStep(Symbols.has, accessor, propertyTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.has, accessor, propertyTraversal);
         switch (accessor) {
             case id:
                 return this.asAdmin().addStep(
@@ -2298,7 +2298,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         if (null == propertyTraversal)
             return has(propertyKey, (Object) null);
 
-        this.asAdmin().getGremlincode().addStep(Symbols.has, propertyKey, propertyTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.has, propertyKey, propertyTraversal);
         return this.asAdmin().addStep(
                 new TraversalFilterStep<>(this.asAdmin(), propertyTraversal.asAdmin().addStep(0,
                         new PropertiesStep(propertyTraversal.asAdmin(), PropertyType.VALUE, propertyKey))));
@@ -2313,7 +2313,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> has(final String propertyKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.has, propertyKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.has, propertyKey);
         return this.asAdmin().addStep(new TraversalFilterStep(this.asAdmin(), __.values(propertyKey)));
     }
 
@@ -2326,7 +2326,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> hasNot(final String propertyKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.hasNot, propertyKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.hasNot, propertyKey);
         return this.asAdmin().addStep(new NotStep(this.asAdmin(), __.values(propertyKey)));
     }
 
@@ -2340,7 +2340,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.2.2
      */
     public default GraphTraversal<S, E> hasLabel(final String label, final String... otherLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.hasLabel, label, otherLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.hasLabel, label, otherLabels);
 
         // groovy evaluation seems to do strange things with varargs given hasLabel(null, null). odd someone would
         // do this but the failure is ugly if not handled.
@@ -2366,7 +2366,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         if (null == predicate) {
             return hasLabel((String) null);
         } else {
-            this.asAdmin().getGremlincode().addStep(Symbols.hasLabel, predicate);
+            this.asAdmin().getGremlinLang().addStep(Symbols.hasLabel, predicate);
             return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.label.getAccessor(), predicate));
         }
     }
@@ -2385,7 +2385,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
             return this.hasId((P) id);
         }
         else {
-            this.asAdmin().getGremlincode().addStep(Symbols.hasId, id, otherIds);
+            this.asAdmin().getGremlinLang().addStep(Symbols.hasId, id, otherIds);
 
             //using ArrayList given P.within() turns all arguments into lists
             final List<Object> ids = new ArrayList<>();
@@ -2429,7 +2429,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         if (null == predicate)
             return hasId((Object) null);
 
-        this.asAdmin().getGremlincode().addStep(Symbols.hasId, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.hasId, predicate);
         return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.id.getAccessor(), predicate));
     }
 
@@ -2444,7 +2444,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.2.2
      */
     public default GraphTraversal<S, E> hasKey(final String label, final String... otherLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.hasKey, label, otherLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.hasKey, label, otherLabels);
 
         // groovy evaluation seems to do strange things with varargs given hasLabel(null, null). odd someone would
         // do this but the failure is ugly if not handled.
@@ -2471,7 +2471,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         if (null == predicate) {
             return hasKey((String) null);
         } else {
-            this.asAdmin().getGremlincode().addStep(Symbols.hasKey, predicate);
+            this.asAdmin().getGremlinLang().addStep(Symbols.hasKey, predicate);
             return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.key.getAccessor(), predicate));
         }
     }
@@ -2488,7 +2488,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         if (value instanceof P)
             return this.hasValue((P) value);
         else {
-            this.asAdmin().getGremlincode().addStep(Symbols.hasValue, value, otherValues);
+            this.asAdmin().getGremlinLang().addStep(Symbols.hasValue, value, otherValues);
             final List<Object> values = new ArrayList<>();
             if (value instanceof Object[]) {
                 Collections.addAll(values, (Object[]) value);
@@ -2525,7 +2525,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         if (null == predicate) {
             return hasValue((String) null);
         } else {
-            this.asAdmin().getGremlincode().addStep(Symbols.hasValue, predicate);
+            this.asAdmin().getGremlinLang().addStep(Symbols.hasValue, predicate);
             return TraversalHelper.addHasContainer(this.asAdmin(), new HasContainer(T.value.getAccessor(), predicate));
         }
     }
@@ -2539,7 +2539,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> is(final P<E> predicate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.is, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.is, predicate);
         return this.asAdmin().addStep(new IsStep<>(this.asAdmin(), predicate));
     }
 
@@ -2552,7 +2552,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> is(final Object value) {
-        this.asAdmin().getGremlincode().addStep(Symbols.is, value);
+        this.asAdmin().getGremlinLang().addStep(Symbols.is, value);
         return this.asAdmin().addStep(new IsStep<>(this.asAdmin(), value instanceof P ? (P<E>) value : P.eq((E) value)));
     }
 
@@ -2565,7 +2565,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> not(final Traversal<?, ?> notTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.not, notTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.not, notTraversal);
         return this.asAdmin().addStep(new NotStep<>(this.asAdmin(), (Traversal<E, ?>) notTraversal));
     }
 
@@ -2578,7 +2578,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> coin(final double probability) {
-        this.asAdmin().getGremlincode().addStep(Symbols.coin, probability);
+        this.asAdmin().getGremlinLang().addStep(Symbols.coin, probability);
         return this.asAdmin().addStep(new CoinStep<>(this.asAdmin(), probability));
     }
 
@@ -2593,7 +2593,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> range(final long low, final long high) {
-        this.asAdmin().getGremlincode().addStep(Symbols.range, low, high);
+        this.asAdmin().getGremlinLang().addStep(Symbols.range, low, high);
         return this.asAdmin().addStep(new RangeGlobalStep<>(this.asAdmin(), low, high));
     }
 
@@ -2610,7 +2610,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> range(final Scope scope, final long low, final long high) {
-        this.asAdmin().getGremlincode().addStep(Symbols.range, scope, low, high);
+        this.asAdmin().getGremlinLang().addStep(Symbols.range, scope, low, high);
         return this.asAdmin().addStep(scope.equals(Scope.global)
                 ? new RangeGlobalStep<>(this.asAdmin(), low, high)
                 : new RangeLocalStep<>(this.asAdmin(), low, high));
@@ -2626,7 +2626,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> limit(final long limit) {
-        this.asAdmin().getGremlincode().addStep(Symbols.limit, limit);
+        this.asAdmin().getGremlinLang().addStep(Symbols.limit, limit);
         return this.asAdmin().addStep(new RangeGlobalStep<>(this.asAdmin(), 0, limit));
     }
 
@@ -2641,7 +2641,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> limit(final Scope scope, final long limit) {
-        this.asAdmin().getGremlincode().addStep(Symbols.limit, scope, limit);
+        this.asAdmin().getGremlinLang().addStep(Symbols.limit, scope, limit);
         return this.asAdmin().addStep(scope.equals(Scope.global)
                 ? new RangeGlobalStep<>(this.asAdmin(), 0, limit)
                 : new RangeLocalStep<>(this.asAdmin(), 0, limit));
@@ -2656,7 +2656,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> tail() {
-        this.asAdmin().getGremlincode().addStep(Symbols.tail);
+        this.asAdmin().getGremlinLang().addStep(Symbols.tail);
         return this.asAdmin().addStep(new TailGlobalStep<>(this.asAdmin(), 1));
     }
 
@@ -2670,7 +2670,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> tail(final long limit) {
-        this.asAdmin().getGremlincode().addStep(Symbols.tail, limit);
+        this.asAdmin().getGremlinLang().addStep(Symbols.tail, limit);
         return this.asAdmin().addStep(new TailGlobalStep<>(this.asAdmin(), limit));
     }
 
@@ -2684,7 +2684,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> tail(final Scope scope) {
-        this.asAdmin().getGremlincode().addStep(Symbols.tail, scope);
+        this.asAdmin().getGremlinLang().addStep(Symbols.tail, scope);
         return this.asAdmin().addStep(scope.equals(Scope.global)
                 ? new TailGlobalStep<>(this.asAdmin(), 1)
                 : new TailLocalStep<>(this.asAdmin(), 1));
@@ -2701,7 +2701,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> tail(final Scope scope, final long limit) {
-        this.asAdmin().getGremlincode().addStep(Symbols.tail, scope, limit);
+        this.asAdmin().getGremlinLang().addStep(Symbols.tail, scope, limit);
         return this.asAdmin().addStep(scope.equals(Scope.global)
                 ? new TailGlobalStep<>(this.asAdmin(), limit)
                 : new TailLocalStep<>(this.asAdmin(), limit));
@@ -2716,7 +2716,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.3.0
      */
     public default GraphTraversal<S, E> skip(final long skip) {
-        this.asAdmin().getGremlincode().addStep(Symbols.skip, skip);
+        this.asAdmin().getGremlinLang().addStep(Symbols.skip, skip);
         return this.asAdmin().addStep(new RangeGlobalStep<>(this.asAdmin(), skip, -1));
     }
 
@@ -2730,7 +2730,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.3.0
      */
     public default <E2> GraphTraversal<S, E2> skip(final Scope scope, final long skip) {
-        this.asAdmin().getGremlincode().addStep(Symbols.skip, scope, skip);
+        this.asAdmin().getGremlinLang().addStep(Symbols.skip, scope, skip);
         return this.asAdmin().addStep(scope.equals(Scope.global)
                 ? new RangeGlobalStep<>(this.asAdmin(), skip, -1)
                 : new RangeLocalStep<>(this.asAdmin(), skip, -1));
@@ -2745,7 +2745,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> timeLimit(final long timeLimit) {
-        this.asAdmin().getGremlincode().addStep(Symbols.timeLimit, timeLimit);
+        this.asAdmin().getGremlinLang().addStep(Symbols.timeLimit, timeLimit);
         return this.asAdmin().addStep(new TimeLimitStep<E>(this.asAdmin(), timeLimit));
     }
 
@@ -2757,7 +2757,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> simplePath() {
-        this.asAdmin().getGremlincode().addStep(Symbols.simplePath);
+        this.asAdmin().getGremlinLang().addStep(Symbols.simplePath);
         return this.asAdmin().addStep(new PathFilterStep<E>(this.asAdmin(), true));
     }
 
@@ -2769,7 +2769,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> cyclicPath() {
-        this.asAdmin().getGremlincode().addStep(Symbols.cyclicPath);
+        this.asAdmin().getGremlinLang().addStep(Symbols.cyclicPath);
         return this.asAdmin().addStep(new PathFilterStep<E>(this.asAdmin(), false));
     }
 
@@ -2782,7 +2782,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> sample(final int amountToSample) {
-        this.asAdmin().getGremlincode().addStep(Symbols.sample, amountToSample);
+        this.asAdmin().getGremlinLang().addStep(Symbols.sample, amountToSample);
         return this.asAdmin().addStep(new SampleGlobalStep<>(this.asAdmin(), amountToSample));
     }
 
@@ -2796,7 +2796,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> sample(final Scope scope, final int amountToSample) {
-        this.asAdmin().getGremlincode().addStep(Symbols.sample, scope, amountToSample);
+        this.asAdmin().getGremlinLang().addStep(Symbols.sample, scope, amountToSample);
         return this.asAdmin().addStep(scope.equals(Scope.global)
                 ? new SampleGlobalStep<>(this.asAdmin(), amountToSample)
                 : new SampleLocalStep<>(this.asAdmin(), amountToSample));
@@ -2812,7 +2812,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> drop() {
-        this.asAdmin().getGremlincode().addStep(Symbols.drop);
+        this.asAdmin().getGremlinLang().addStep(Symbols.drop);
         return this.asAdmin().addStep(new DropStep<>(this.asAdmin()));
     }
 
@@ -2825,7 +2825,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <S2> GraphTraversal<S, E> all(final P<S2> predicate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.all, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.all, predicate);
         return this.asAdmin().addStep(new AllStep<>(this.asAdmin(), predicate));
     }
 
@@ -2838,7 +2838,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.1
      */
     public default <S2> GraphTraversal<S, E> any(final P<S2> predicate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.any, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.any, predicate);
         return this.asAdmin().addStep(new AnyStep<>(this.asAdmin(), predicate));
     }
 
@@ -2851,7 +2851,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 4.0.0
      */
     public default <S2> GraphTraversal<S, E> none(final P<S2> predicate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.none, predicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.none, predicate);
         return this.asAdmin().addStep(new NoneStep<>(this.asAdmin(), predicate));
     }
 
@@ -2866,7 +2866,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> sideEffect(final Consumer<Traverser<E>> consumer) {
-        this.asAdmin().getGremlincode().addStep(Symbols.sideEffect, consumer);
+        this.asAdmin().getGremlinLang().addStep(Symbols.sideEffect, consumer);
         return this.asAdmin().addStep(new LambdaSideEffectStep<>(this.asAdmin(), consumer));
     }
 
@@ -2879,7 +2879,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> sideEffect(final Traversal<?, ?> sideEffectTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.sideEffect, sideEffectTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.sideEffect, sideEffectTraversal);
         return this.asAdmin().addStep(new TraversalSideEffectStep<>(this.asAdmin(), (Traversal) sideEffectTraversal));
     }
 
@@ -2894,7 +2894,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> cap(final String sideEffectKey, final String... sideEffectKeys) {
-        this.asAdmin().getGremlincode().addStep(Symbols.cap, sideEffectKey, sideEffectKeys);
+        this.asAdmin().getGremlinLang().addStep(Symbols.cap, sideEffectKey, sideEffectKeys);
         return this.asAdmin().addStep(new SideEffectCapStep<>(this.asAdmin(), sideEffectKey, sideEffectKeys));
     }
 
@@ -2908,7 +2908,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, Edge> subgraph(final String sideEffectKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.subgraph, sideEffectKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.subgraph, sideEffectKey);
         return this.asAdmin().addStep(new SubgraphStep(this.asAdmin(), sideEffectKey));
     }
 
@@ -2922,7 +2922,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> aggregate(final String sideEffectKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.aggregate, sideEffectKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.aggregate, sideEffectKey);
         return this.asAdmin().addStep(new AggregateGlobalStep<>(this.asAdmin(), sideEffectKey));
     }
 
@@ -2936,7 +2936,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.4.3
      */
     public default GraphTraversal<S, E> aggregate(final Scope scope, final String sideEffectKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.aggregate, scope, sideEffectKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.aggregate, scope, sideEffectKey);
         return this.asAdmin().addStep(scope == Scope.global ?
                 new AggregateGlobalStep<>(this.asAdmin(), sideEffectKey) : new AggregateLocalStep<>(this.asAdmin(), sideEffectKey));
     }
@@ -2951,7 +2951,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> group(final String sideEffectKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.group, sideEffectKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.group, sideEffectKey);
         return this.asAdmin().addStep(new GroupSideEffectStep<>(this.asAdmin(), sideEffectKey));
     }
 
@@ -2965,7 +2965,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> groupCount(final String sideEffectKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.groupCount, sideEffectKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.groupCount, sideEffectKey);
         return this.asAdmin().addStep(new GroupCountSideEffectStep<>(this.asAdmin(), sideEffectKey));
     }
 
@@ -2978,7 +2978,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     public default GraphTraversal<S, E> fail() {
-        this.asAdmin().getGremlincode().addStep(Symbols.fail);
+        this.asAdmin().getGremlinLang().addStep(Symbols.fail);
         return this.asAdmin().addStep(new FailStep<>(this.asAdmin()));
     }
 
@@ -2992,7 +2992,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     public default GraphTraversal<S, E> fail(final String message) {
-        this.asAdmin().getGremlincode().addStep(Symbols.fail, message);
+        this.asAdmin().getGremlinLang().addStep(Symbols.fail, message);
         return this.asAdmin().addStep(new FailStep<>(this.asAdmin(), message));
     }
 
@@ -3005,7 +3005,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> tree(final String sideEffectKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.tree, sideEffectKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.tree, sideEffectKey);
         return this.asAdmin().addStep(new TreeSideEffectStep<>(this.asAdmin(), sideEffectKey));
     }
 
@@ -3018,7 +3018,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <V, U> GraphTraversal<S, E> sack(final BiFunction<V, U, V> sackOperator) {
-        this.asAdmin().getGremlincode().addStep(Symbols.sack, sackOperator);
+        this.asAdmin().getGremlinLang().addStep(Symbols.sack, sackOperator);
         return this.asAdmin().addStep(new SackValueStep<>(this.asAdmin(), sackOperator));
     }
 
@@ -3033,7 +3033,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     @Deprecated
     public default GraphTraversal<S, E> store(final String sideEffectKey) {
-        this.asAdmin().getGremlincode().addStep(Symbols.store, sideEffectKey);
+        this.asAdmin().getGremlinLang().addStep(Symbols.store, sideEffectKey);
         return this.asAdmin().addStep(new AggregateLocalStep<>(this.asAdmin(), sideEffectKey));
     }
 
@@ -3047,7 +3047,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.2.0-incubating
      */
     public default GraphTraversal<S, E> profile(final String sideEffectKey) {
-        this.asAdmin().getGremlincode().addStep(Traversal.Symbols.profile, sideEffectKey);
+        this.asAdmin().getGremlinLang().addStep(Traversal.Symbols.profile, sideEffectKey);
         return this.asAdmin().addStep(new ProfileSideEffectStep<>(this.asAdmin(), sideEffectKey));
     }
 
@@ -3089,9 +3089,9 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
             throw new IllegalArgumentException("Value of T cannot be null");
 
         if (null == cardinality)
-            this.asAdmin().getGremlincode().addStep(Symbols.property, key, value, keyValues);
+            this.asAdmin().getGremlinLang().addStep(Symbols.property, key, value, keyValues);
         else
-            this.asAdmin().getGremlincode().addStep(Symbols.property, cardinality, key, value, keyValues);
+            this.asAdmin().getGremlinLang().addStep(Symbols.property, cardinality, key, value, keyValues);
 
         // if it can be detected that this call to property() is related to an addV/E() then we can attempt to fold
         // the properties into that step to gain an optimization for those graphs that support such capabilities.
@@ -3243,7 +3243,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <M, E2> GraphTraversal<S, E2> branch(final Traversal<?, M> branchTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.branch, branchTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.branch, branchTraversal);
         final BranchStep<E, E2, M> branchStep = new BranchStep<>(this.asAdmin());
         branchStep.setBranchTraversal((Traversal.Admin<E, M>) branchTraversal);
         return this.asAdmin().addStep(branchStep);
@@ -3258,7 +3258,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <M, E2> GraphTraversal<S, E2> branch(final Function<Traverser<E>, M> function) {
-        this.asAdmin().getGremlincode().addStep(Symbols.branch, function);
+        this.asAdmin().getGremlinLang().addStep(Symbols.branch, function);
         final BranchStep<E, E2, M> branchStep = new BranchStep<>(this.asAdmin());
         branchStep.setBranchTraversal((Traversal.Admin<E, M>) __.map(function));
         return this.asAdmin().addStep(branchStep);
@@ -3275,7 +3275,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <M, E2> GraphTraversal<S, E2> choose(final Traversal<?, M> choiceTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.choose, choiceTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.choose, choiceTraversal);
         return this.asAdmin().addStep(new ChooseStep<>(this.asAdmin(), (Traversal.Admin<E, M>) choiceTraversal));
     }
 
@@ -3292,7 +3292,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default <E2> GraphTraversal<S, E2> choose(final Traversal<?, ?> traversalPredicate,
                                                      final Traversal<?, E2> trueChoice, final Traversal<?, E2> falseChoice) {
-        this.asAdmin().getGremlincode().addStep(Symbols.choose, traversalPredicate, trueChoice, falseChoice);
+        this.asAdmin().getGremlinLang().addStep(Symbols.choose, traversalPredicate, trueChoice, falseChoice);
         return this.asAdmin().addStep(new ChooseStep<E, E2, Boolean>(this.asAdmin(), (Traversal.Admin<E, ?>) traversalPredicate, (Traversal.Admin<E, E2>) trueChoice, (Traversal.Admin<E, E2>) falseChoice));
     }
 
@@ -3308,7 +3308,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default <E2> GraphTraversal<S, E2> choose(final Traversal<?, ?> traversalPredicate,
                                                      final Traversal<?, E2> trueChoice) {
-        this.asAdmin().getGremlincode().addStep(Symbols.choose, traversalPredicate, trueChoice);
+        this.asAdmin().getGremlinLang().addStep(Symbols.choose, traversalPredicate, trueChoice);
         return this.asAdmin().addStep(new ChooseStep<E, E2, Boolean>(this.asAdmin(), (Traversal.Admin<E, ?>) traversalPredicate, (Traversal.Admin<E, E2>) trueChoice, (Traversal.Admin<E, E2>) __.identity()));
     }
 
@@ -3323,7 +3323,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <M, E2> GraphTraversal<S, E2> choose(final Function<E, M> choiceFunction) {
-        this.asAdmin().getGremlincode().addStep(Symbols.choose, choiceFunction);
+        this.asAdmin().getGremlinLang().addStep(Symbols.choose, choiceFunction);
         return this.asAdmin().addStep(new ChooseStep<>(this.asAdmin(), (Traversal.Admin<E, M>) __.map(new FunctionTraverser<>(choiceFunction))));
     }
 
@@ -3340,7 +3340,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default <E2> GraphTraversal<S, E2> choose(final Predicate<E> choosePredicate,
                                                      final Traversal<?, E2> trueChoice, final Traversal<?, E2> falseChoice) {
-        this.asAdmin().getGremlincode().addStep(Symbols.choose, choosePredicate, trueChoice, falseChoice);
+        this.asAdmin().getGremlinLang().addStep(Symbols.choose, choosePredicate, trueChoice, falseChoice);
         return this.asAdmin().addStep(new ChooseStep<E, E2, Boolean>(this.asAdmin(), (Traversal.Admin<E, ?>) __.filter(new PredicateTraverser<>(choosePredicate)), (Traversal.Admin<E, E2>) trueChoice, (Traversal.Admin<E, E2>) falseChoice));
     }
 
@@ -3356,7 +3356,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      */
     public default <E2> GraphTraversal<S, E2> choose(final Predicate<E> choosePredicate,
                                                      final Traversal<?, E2> trueChoice) {
-        this.asAdmin().getGremlincode().addStep(Symbols.choose, choosePredicate, trueChoice);
+        this.asAdmin().getGremlinLang().addStep(Symbols.choose, choosePredicate, trueChoice);
         return this.asAdmin().addStep(new ChooseStep<E, E2, Boolean>(this.asAdmin(), (Traversal.Admin<E, ?>) __.filter(new PredicateTraverser<>(choosePredicate)), (Traversal.Admin<E, E2>) trueChoice, (Traversal.Admin<E, E2>) __.identity()));
     }
 
@@ -3369,7 +3369,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> optional(final Traversal<?, E2> optionalTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.optional, optionalTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.optional, optionalTraversal);
         return this.asAdmin().addStep(new OptionalStep<>(this.asAdmin(), (Traversal.Admin<E2, E2>) optionalTraversal));
     }
 
@@ -3382,7 +3382,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> union(final Traversal<?, E2>... unionTraversals) {
-        this.asAdmin().getGremlincode().addStep(Symbols.union, unionTraversals);
+        this.asAdmin().getGremlinLang().addStep(Symbols.union, unionTraversals);
         return this.asAdmin().addStep(new UnionStep<>(this.asAdmin(), Arrays.copyOf(unionTraversals, unionTraversals.length, Traversal.Admin[].class)));
     }
 
@@ -3395,7 +3395,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> coalesce(final Traversal<?, E2>... coalesceTraversals) {
-        this.asAdmin().getGremlincode().addStep(Symbols.coalesce, coalesceTraversals);
+        this.asAdmin().getGremlinLang().addStep(Symbols.coalesce, coalesceTraversals);
         return this.asAdmin().addStep(new CoalesceStep<>(this.asAdmin(), Arrays.copyOf(coalesceTraversals, coalesceTraversals.length, Traversal.Admin[].class)));
     }
 
@@ -3408,7 +3408,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> repeat(final Traversal<?, E> repeatTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.repeat, repeatTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.repeat, repeatTraversal);
         return RepeatStep.addRepeatToTraversal(this, (Traversal.Admin<E, E>) repeatTraversal);
     }
 
@@ -3422,7 +3422,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.4.0
      */
     public default GraphTraversal<S, E> repeat(final String loopName, final Traversal<?, E> repeatTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.repeat, loopName, repeatTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.repeat, loopName, repeatTraversal);
         return RepeatStep.addRepeatToTraversal(this, loopName, (Traversal.Admin<E, E>) repeatTraversal);
     }
 
@@ -3436,7 +3436,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> emit(final Traversal<?, ?> emitTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.emit, emitTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.emit, emitTraversal);
         return RepeatStep.addEmitToTraversal(this, (Traversal.Admin<E, ?>) emitTraversal);
     }
 
@@ -3449,7 +3449,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> emit(final Predicate<Traverser<E>> emitPredicate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.emit, emitPredicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.emit, emitPredicate);
         return RepeatStep.addEmitToTraversal(this, (Traversal.Admin<E, ?>) __.filter(emitPredicate));
     }
 
@@ -3461,7 +3461,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> emit() {
-        this.asAdmin().getGremlincode().addStep(Symbols.emit);
+        this.asAdmin().getGremlinLang().addStep(Symbols.emit);
         return RepeatStep.addEmitToTraversal(this, TrueTraversal.instance());
     }
 
@@ -3474,7 +3474,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> until(final Traversal<?, ?> untilTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.until, untilTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.until, untilTraversal);
         return RepeatStep.addUntilToTraversal(this, (Traversal.Admin<E, ?>) untilTraversal);
     }
 
@@ -3487,7 +3487,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> until(final Predicate<Traverser<E>> untilPredicate) {
-        this.asAdmin().getGremlincode().addStep(Symbols.until, untilPredicate);
+        this.asAdmin().getGremlinLang().addStep(Symbols.until, untilPredicate);
         return RepeatStep.addUntilToTraversal(this, (Traversal.Admin<E, ?>) __.filter(untilPredicate));
     }
 
@@ -3500,7 +3500,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> times(final int maxLoops) {
-        this.asAdmin().getGremlincode().addStep(Symbols.times, maxLoops);
+        this.asAdmin().getGremlinLang().addStep(Symbols.times, maxLoops);
         if (this.asAdmin().getEndStep() instanceof TimesModulating) {
             ((TimesModulating) this.asAdmin().getEndStep()).modulateTimes(maxLoops);
             return this;
@@ -3517,7 +3517,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E2> local(final Traversal<?, E2> localTraversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.local, localTraversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.local, localTraversal);
         return this.asAdmin().addStep(new LocalStep<>(this.asAdmin(), localTraversal.asAdmin()));
     }
 
@@ -3531,7 +3531,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.2.0-incubating
      */
     public default GraphTraversal<S, E> pageRank() {
-        this.asAdmin().getGremlincode().addStep(Symbols.pageRank);
+        this.asAdmin().getGremlinLang().addStep(Symbols.pageRank);
         return this.asAdmin().addStep((Step<E, E>) new PageRankVertexProgramStep(this.asAdmin(), 0.85d));
     }
 
@@ -3543,7 +3543,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.2.0-incubating
      */
     public default GraphTraversal<S, E> pageRank(final double alpha) {
-        this.asAdmin().getGremlincode().addStep(Symbols.pageRank, alpha);
+        this.asAdmin().getGremlinLang().addStep(Symbols.pageRank, alpha);
         return this.asAdmin().addStep((Step<E, E>) new PageRankVertexProgramStep(this.asAdmin(), alpha));
     }
 
@@ -3555,7 +3555,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.2.0-incubating
      */
     public default GraphTraversal<S, E> peerPressure() {
-        this.asAdmin().getGremlincode().addStep(Symbols.peerPressure);
+        this.asAdmin().getGremlinLang().addStep(Symbols.peerPressure);
         return this.asAdmin().addStep((Step<E, E>) new PeerPressureVertexProgramStep(this.asAdmin()));
     }
 
@@ -3567,7 +3567,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.4.0
      */
     public default GraphTraversal<S, E> connectedComponent() {
-        this.asAdmin().getGremlincode().addStep(Symbols.connectedComponent);
+        this.asAdmin().getGremlinLang().addStep(Symbols.connectedComponent);
         return this.asAdmin().addStep((Step<E, E>) new ConnectedComponentVertexProgramStep(this.asAdmin()));
     }
 
@@ -3585,7 +3585,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
             // HALTED_TRAVERSER stored in memory and stored as vertex properties); instead it just emits all vertices.
             this.identity();
         }
-        this.asAdmin().getGremlincode().addStep(Symbols.shortestPath);
+        this.asAdmin().getGremlinLang().addStep(Symbols.shortestPath);
         return (GraphTraversal<S, Path>) ((Traversal.Admin) this.asAdmin())
                 .addStep(new ShortestPathVertexProgramStep(this.asAdmin()));
     }
@@ -3613,7 +3613,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> as(final String stepLabel, final String... stepLabels) {
-        this.asAdmin().getGremlincode().addStep(Symbols.as, stepLabel, stepLabels);
+        this.asAdmin().getGremlinLang().addStep(Symbols.as, stepLabel, stepLabels);
         if (this.asAdmin().getSteps().size() == 0) this.asAdmin().addStep(new StartStep<>(this.asAdmin()));
         final Step<?, E> endStep = this.asAdmin().getEndStep();
         endStep.addLabel(stepLabel);
@@ -3633,7 +3633,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> barrier() {
-        this.asAdmin().getGremlincode().addStep(Symbols.barrier);
+        this.asAdmin().getGremlinLang().addStep(Symbols.barrier);
         return this.asAdmin().addStep(new NoOpBarrierStep<>(this.asAdmin(), Integer.MAX_VALUE));
     }
 
@@ -3647,7 +3647,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> barrier(final int maxBarrierSize) {
-        this.asAdmin().getGremlincode().addStep(Symbols.barrier, maxBarrierSize);
+        this.asAdmin().getGremlinLang().addStep(Symbols.barrier, maxBarrierSize);
         return this.asAdmin().addStep(new NoOpBarrierStep<>(this.asAdmin(), maxBarrierSize));
     }
 
@@ -3668,7 +3668,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.4.0
      */
     public default <E2> GraphTraversal<S, E2> index() {
-        this.asAdmin().getGremlincode().addStep(Symbols.index);
+        this.asAdmin().getGremlinLang().addStep(Symbols.index);
         return this.asAdmin().addStep(new IndexStep<>(this.asAdmin()));
     }
 
@@ -3683,7 +3683,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.2.0-incubating
      */
     public default GraphTraversal<S, E> barrier(final Consumer<TraverserSet<Object>> barrierConsumer) {
-        this.asAdmin().getGremlincode().addStep(Symbols.barrier, barrierConsumer);
+        this.asAdmin().getGremlinLang().addStep(Symbols.barrier, barrierConsumer);
         return this.asAdmin().addStep(new LambdaCollectingBarrierStep<>(this.asAdmin(), (Consumer) barrierConsumer, Integer.MAX_VALUE));
     }
 
@@ -3700,7 +3700,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.4.0
      */
     public default GraphTraversal<S,E> with(final String key) {
-        this.asAdmin().getGremlincode().addStep(Symbols.with, key);
+        this.asAdmin().getGremlinLang().addStep(Symbols.with, key);
         final Object[] configPair = { key, true };
         ((Configuring) this.asAdmin().getEndStep()).configure(configPair);
         return this;
@@ -3717,7 +3717,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.4.0
      */
     public default GraphTraversal<S,E> with(final String key, final Object value) {
-        this.asAdmin().getGremlincode().addStep(Symbols.with, key, value);
+        this.asAdmin().getGremlinLang().addStep(Symbols.with, key, value);
         final Object[] configPair = { key, value };
         ((Configuring) this.asAdmin().getEndStep()).configure(configPair);
         return this;
@@ -3734,7 +3734,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> by() {
-        this.asAdmin().getGremlincode().addStep(Symbols.by);
+        this.asAdmin().getGremlinLang().addStep(Symbols.by);
         ((ByModulating) this.asAdmin().getEndStep()).modulateBy();
         return this;
     }
@@ -3749,7 +3749,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> by(final Traversal<?, ?> traversal) {
-        this.asAdmin().getGremlincode().addStep(Symbols.by, traversal);
+        this.asAdmin().getGremlinLang().addStep(Symbols.by, traversal);
         ((ByModulating) this.asAdmin().getEndStep()).modulateBy(traversal.asAdmin());
         return this;
     }
@@ -3764,7 +3764,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> by(final T token) {
-        this.asAdmin().getGremlincode().addStep(Symbols.by, token);
+        this.asAdmin().getGremlinLang().addStep(Symbols.by, token);
         ((ByModulating) this.asAdmin().getEndStep()).modulateBy(token);
         return this;
     }
@@ -3779,7 +3779,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> by(final String key) {
-        this.asAdmin().getGremlincode().addStep(Symbols.by, key);
+        this.asAdmin().getGremlinLang().addStep(Symbols.by, key);
         ((ByModulating) this.asAdmin().getEndStep()).modulateBy(key);
         return this;
     }
@@ -3794,7 +3794,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <V> GraphTraversal<S, E> by(final Function<V, Object> function) {
-        this.asAdmin().getGremlincode().addStep(Symbols.by, function);
+        this.asAdmin().getGremlinLang().addStep(Symbols.by, function);
         ((ByModulating) this.asAdmin().getEndStep()).modulateBy(function);
         return this;
     }
@@ -3812,7 +3812,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <V> GraphTraversal<S, E> by(final Traversal<?, ?> traversal, final Comparator<V> comparator) {
-        this.asAdmin().getGremlincode().addStep(Symbols.by, traversal, comparator);
+        this.asAdmin().getGremlinLang().addStep(Symbols.by, traversal, comparator);
         ((ByModulating) this.asAdmin().getEndStep()).modulateBy(traversal.asAdmin(), comparator);
         return this;
     }
@@ -3827,7 +3827,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> by(final Comparator<E> comparator) {
-        this.asAdmin().getGremlincode().addStep(Symbols.by, comparator);
+        this.asAdmin().getGremlinLang().addStep(Symbols.by, comparator);
         ((ByModulating) this.asAdmin().getEndStep()).modulateBy(comparator);
         return this;
     }
@@ -3842,7 +3842,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default GraphTraversal<S, E> by(final Order order) {
-        this.asAdmin().getGremlincode().addStep(Symbols.by, order);
+        this.asAdmin().getGremlinLang().addStep(Symbols.by, order);
         ((ByModulating) this.asAdmin().getEndStep()).modulateBy(order);
         return this;
     }
@@ -3858,7 +3858,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <V> GraphTraversal<S, E> by(final String key, final Comparator<V> comparator) {
-        this.asAdmin().getGremlincode().addStep(Symbols.by, key, comparator);
+        this.asAdmin().getGremlinLang().addStep(Symbols.by, key, comparator);
         ((ByModulating) this.asAdmin().getEndStep()).modulateBy(key, comparator);
         return this;
     }
@@ -3874,7 +3874,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <U> GraphTraversal<S, E> by(final Function<U, Object> function, final Comparator comparator) {
-        this.asAdmin().getGremlincode().addStep(Symbols.by, function, comparator);
+        this.asAdmin().getGremlinLang().addStep(Symbols.by, function, comparator);
         ((ByModulating) this.asAdmin().getEndStep()).modulateBy(function, comparator);
         return this;
     }
@@ -3896,7 +3896,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <M, E2> GraphTraversal<S, E> option(final M token, final Traversal<?, E2> traversalOption) {
-        this.asAdmin().getGremlincode().addStep(Symbols.option, token, traversalOption);
+        this.asAdmin().getGremlinLang().addStep(Symbols.option, token, traversalOption);
 
         // handle null similar to how option() with Map handles it, otherwise we get a NPE if this one gets used
         final Traversal.Admin<E,E2> t = null == traversalOption ?
@@ -3917,7 +3917,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.6.0
      */
     public default <M, E2> GraphTraversal<S, E> option(final M token, final Map<Object, Object> m) {
-        this.asAdmin().getGremlincode().addStep(Symbols.option, token, m);
+        this.asAdmin().getGremlinLang().addStep(Symbols.option, token, m);
         ((TraversalOptionParent<M, E, E2>) this.asAdmin().getEndStep()).addChildOption(token, (Traversal.Admin<E, E2>) new ConstantTraversal<>(m).asAdmin());
         return this;
     }
@@ -3934,7 +3934,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.7.0
      */
     public default <M, E2> GraphTraversal<S, E> option(final Merge merge, final Map<Object, Object> m, final VertexProperty.Cardinality cardinality) {
-        this.asAdmin().getGremlincode().addStep(Symbols.option, merge, m, cardinality);
+        this.asAdmin().getGremlinLang().addStep(Symbols.option, merge, m, cardinality);
         // do explicit cardinality for every single pair in the map
         for (Object k : m.keySet()) {
             final Object o = m.get(k);
@@ -3954,7 +3954,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.0.0-incubating
      */
     public default <E2> GraphTraversal<S, E> option(final Traversal<?, E2> traversalOption) {
-        this.asAdmin().getGremlincode().addStep(Symbols.option, traversalOption);
+        this.asAdmin().getGremlinLang().addStep(Symbols.option, traversalOption);
         ((TraversalOptionParent<Object, E, E2>) this.asAdmin().getEndStep()).addChildOption(Pick.any, (Traversal.Admin<E, E2>) traversalOption.asAdmin());
         return this;
     }
@@ -3973,7 +3973,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.4.0
      */
     public default GraphTraversal<S,E> read() {
-        this.asAdmin().getGremlincode().addStep(Symbols.read);
+        this.asAdmin().getGremlinLang().addStep(Symbols.read);
         ((ReadWriting) this.asAdmin().getEndStep()).setMode(ReadWriting.Mode.READING);
         return this;
     }
@@ -3988,7 +3988,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
      * @since 3.4.0
      */
     public default GraphTraversal<S,E> write() {
-        this.asAdmin().getGremlincode().addStep(Symbols.write);
+        this.asAdmin().getGremlinLang().addStep(Symbols.write);
         ((ReadWriting) this.asAdmin().getEndStep()).setMode(ReadWriting.Mode.WRITING);
         return this;
     }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
index dc15306fce..a95fa5b952 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java
@@ -22,7 +22,7 @@ import org.apache.tinkerpop.gremlin.process.computer.Computer;
 import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.strategy.decoration.RemoteStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
@@ -67,7 +67,7 @@ public class GraphTraversalSource implements TraversalSource {
     protected transient RemoteConnection connection;
     protected final Graph graph;
     protected TraversalStrategies strategies;
-    protected Bytecode bytecode = new Bytecode();
+    protected GremlinLang gremlinLang = new GremlinLang();
 
     ////////////////
 
@@ -116,8 +116,8 @@ public class GraphTraversalSource implements TraversalSource {
     }
 
     @Override
-    public Bytecode getBytecode() {
-        return this.bytecode;
+    public GremlinLang getGremlinLang() {
+        return this.gremlinLang;
     }
 
     @SuppressWarnings("CloneDoesntDeclareCloneNotSupportedException")
@@ -125,7 +125,7 @@ public class GraphTraversalSource implements TraversalSource {
         try {
             final GraphTraversalSource clone = (GraphTraversalSource) super.clone();
             clone.strategies = this.strategies.clone();
-            clone.bytecode = this.bytecode.clone();
+            clone.gremlinLang = this.gremlinLang.clone();
             return clone;
         } catch (final CloneNotSupportedException e) {
             throw new IllegalStateException(e.getMessage(), e);
@@ -292,14 +292,14 @@ public class GraphTraversalSource implements TraversalSource {
             return this;
         final GraphTraversalSource clone = this.clone();
         RequirementsStrategy.addRequirements(clone.getStrategies(), TraverserRequirement.ONE_BULK);
-        clone.bytecode.addSource(Symbols.withBulk, useBulk);
+        clone.gremlinLang.addSource(Symbols.withBulk, useBulk);
         return clone;
     }
 
     public GraphTraversalSource withPath() {
         final GraphTraversalSource clone = this.clone();
         RequirementsStrategy.addRequirements(clone.getStrategies(), TraverserRequirement.PATH);
-        clone.bytecode.addSource(Symbols.withPath);
+        clone.gremlinLang.addSource(Symbols.withPath);
         return clone;
     }
 
@@ -314,7 +314,7 @@ public class GraphTraversalSource implements TraversalSource {
     public GraphTraversal<Vertex, Vertex> addV(final String vertexLabel) {
         if (null == vertexLabel) throw new IllegalArgumentException("vertexLabel cannot be null");
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.addV, vertexLabel);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.addV, vertexLabel);
         final GraphTraversal.Admin<Vertex, Vertex> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new AddVertexStartStep(traversal, vertexLabel));
     }
@@ -328,7 +328,7 @@ public class GraphTraversalSource implements TraversalSource {
     public GraphTraversal<Vertex, Vertex> addV(final Traversal<?, String> vertexLabelTraversal) {
         if (null == vertexLabelTraversal) throw new IllegalArgumentException("vertexLabelTraversal cannot be null");
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.addV, vertexLabelTraversal);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.addV, vertexLabelTraversal);
         final GraphTraversal.Admin<Vertex, Vertex> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new AddVertexStartStep(traversal, vertexLabelTraversal));
     }
@@ -340,7 +340,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public GraphTraversal<Vertex, Vertex> addV() {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.addV);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.addV);
         final GraphTraversal.Admin<Vertex, Vertex> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new AddVertexStartStep(traversal, (String) null));
     }
@@ -352,7 +352,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public GraphTraversal<Edge, Edge> addE(final String label) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.addE, label);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.addE, label);
         final GraphTraversal.Admin<Edge, Edge> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new AddEdgeStartStep(traversal, label));
     }
@@ -364,7 +364,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public GraphTraversal<Edge, Edge> addE(final Traversal<?, String> edgeLabelTraversal) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.addE, edgeLabelTraversal);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.addE, edgeLabelTraversal);
         final GraphTraversal.Admin<Edge, Edge> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new AddEdgeStartStep(traversal, edgeLabelTraversal));
     }
@@ -380,7 +380,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public GraphTraversal<Vertex, Vertex> mergeV(final Map<Object, Object> searchCreate) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.mergeV, searchCreate);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.mergeV, searchCreate);
         final GraphTraversal.Admin<Vertex, Vertex> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new MergeVertexStep(traversal, true, searchCreate));
     }
@@ -397,7 +397,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public <S> GraphTraversal<S, Vertex> mergeV(final Traversal<?, Map<Object, Object>> searchCreate) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.mergeV, searchCreate);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.mergeV, searchCreate);
         final GraphTraversal.Admin<S, Vertex> traversal = new DefaultGraphTraversal<>(clone);
 
         final MergeVertexStep<S> step = null == searchCreate ? new MergeVertexStep(traversal, true, (Map) null) :
@@ -415,7 +415,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public GraphTraversal<Edge, Edge> mergeE(final Map<?, Object> searchCreate) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.mergeE, searchCreate);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.mergeE, searchCreate);
         final GraphTraversal.Admin<Edge, Edge> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new MergeEdgeStep(traversal, true, searchCreate));
     }
@@ -429,7 +429,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public GraphTraversal<Edge, Edge> mergeE(final Traversal<?, Map<Object, Object>> searchCreate) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.mergeE, searchCreate);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.mergeE, searchCreate);
         final GraphTraversal.Admin<Edge, Edge> traversal = new DefaultGraphTraversal<>(clone);
 
         final MergeEdgeStep step = null == searchCreate ? new MergeEdgeStep(traversal, true,  (Map) null) :
@@ -445,7 +445,7 @@ public class GraphTraversalSource implements TraversalSource {
         // a single null is [null]
         final S[] s = null == starts ? (S[]) new Object[] { null } : starts;
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.inject, s);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.inject, s);
         final GraphTraversal.Admin<S, S> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new InjectStep<S>(traversal, s));
     }
@@ -460,7 +460,7 @@ public class GraphTraversalSource implements TraversalSource {
         // a single null is [null]
         final Object[] ids = null == vertexIds ? new Object[] { null } : vertexIds;
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.V, ids);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.V, ids);
         final GraphTraversal.Admin<Vertex, Vertex> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new GraphStep<>(traversal, Vertex.class, true, ids));
     }
@@ -475,7 +475,7 @@ public class GraphTraversalSource implements TraversalSource {
         // a single null is [null]
         final Object[] ids = null == edgeIds ? new Object[] { null } : edgeIds;
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.E, ids);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.E, ids);
         final GraphTraversal.Admin<Edge, Edge> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new GraphStep<>(traversal, Edge.class, true, ids));
     }
@@ -487,7 +487,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public <S> GraphTraversal<S, S> call() {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.call);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.call);
         final GraphTraversal.Admin<S, S> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new CallStep<>(traversal, true));
     }
@@ -500,7 +500,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public <S> GraphTraversal<S, S> call(final String service) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.call, service);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.call, service);
         final GraphTraversal.Admin<S, S> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new CallStep<>(traversal, true, service));
     }
@@ -515,7 +515,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public <S> GraphTraversal<S, S> call(final String service, final Map params) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.call, service, params);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.call, service, params);
         final GraphTraversal.Admin<S, S> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new CallStep<>(traversal, true, service, params));
     }
@@ -530,7 +530,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public <S> GraphTraversal<S, S> call(final String service, final Traversal<S, Map> childTraversal) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.call, service, childTraversal);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.call, service, childTraversal);
         final GraphTraversal.Admin<S, S> traversal = new DefaultGraphTraversal<>(clone);
         final CallStep<S,S> step = null == childTraversal ? new CallStep(traversal, true, service) :
                 new CallStep(traversal, true, service, new LinkedHashMap(), childTraversal.asAdmin());
@@ -550,7 +550,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public <S> GraphTraversal<S, S> call(final String service, final Map params, final Traversal<S, Map> childTraversal) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.call, service, params, childTraversal);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.call, service, params, childTraversal);
         final GraphTraversal.Admin<S, S> traversal = new DefaultGraphTraversal<>(clone);
         final CallStep<S,S> step = null == childTraversal ? new CallStep(traversal, true, service, params) :
                 new CallStep(traversal, true, service, params, childTraversal.asAdmin());
@@ -566,7 +566,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public <S> GraphTraversal<S, S> union(final Traversal<?, S>... unionTraversals) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.union, unionTraversals);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.union, unionTraversals);
         final GraphTraversal.Admin traversal = new DefaultGraphTraversal(clone);
         final UnionStep<?, S> step = new UnionStep<>(traversal, true, Arrays.copyOf(unionTraversals, unionTraversals.length, Traversal.Admin[].class));
         return traversal.addStep(step);
@@ -588,7 +588,7 @@ public class GraphTraversalSource implements TraversalSource {
      */
     public <S> GraphTraversal<S, S> io(final String file) {
         final GraphTraversalSource clone = this.clone();
-        clone.bytecode.addStep(GraphTraversal.Symbols.io, file);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.io, file);
         final GraphTraversal.Admin<S,S> traversal = new DefaultGraphTraversal<>(clone);
         return traversal.addStep(new IoStep<S>(traversal, file));
     }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
index 1d04e32c63..5aa089425b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/AbstractLambdaTraversal.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.lambda;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
@@ -61,8 +61,8 @@ public abstract class AbstractLambdaTraversal<S, E> implements Traversal.Admin<S
     }
 
     @Override
-    public Bytecode getGremlincode() {
-        return null == this.bypassTraversal ? new Bytecode() : this.bypassTraversal.getGremlincode();
+    public GremlinLang getGremlinLang() {
+        return null == this.bypassTraversal ? new GremlinLang() : this.bypassTraversal.getGremlinLang();
     }
 
 
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/CardinalityValueTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/CardinalityValueTraversal.java
index 56a0c0725b..8786520b69 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/CardinalityValueTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/lambda/CardinalityValueTraversal.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.lambda;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 
 import java.util.Objects;
@@ -29,21 +29,21 @@ public final class CardinalityValueTraversal extends AbstractLambdaTraversal {
 
     private final Object value;
 
-    private final Bytecode bytecode;
+    private final GremlinLang bytecode;
 
     public CardinalityValueTraversal(final VertexProperty.Cardinality cardinality, final Object value) {
         this.cardinality = cardinality;
         this.value = value;
-        this.bytecode = new Bytecode(CardinalityValueTraversal.class.getSimpleName(), cardinality.name(), value);
+        this.bytecode = new GremlinLang(CardinalityValueTraversal.class.getSimpleName(), cardinality.name(), value);
     }
 
-    public static CardinalityValueTraversal from(final Bytecode.Instruction inst) {
+    public static CardinalityValueTraversal from(final GremlinLang.Instruction inst) {
         return new CardinalityValueTraversal(VertexProperty.Cardinality.valueOf(inst.getArguments()[0].toString()),
                 inst.getArguments()[1]);
     }
 
     @Override
-    public Bytecode getGremlincode() {
+    public GremlinLang getGremlinLang() {
         return this.bytecode;
     }
 
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/TraversalStrategyProxy.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/TraversalStrategyProxy.java
index ea4415ad65..363fd89b84 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/TraversalStrategyProxy.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/TraversalStrategyProxy.java
@@ -20,7 +20,7 @@
 package org.apache.tinkerpop.gremlin.process.traversal.strategy;
 
 import org.apache.commons.configuration2.Configuration;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
@@ -29,7 +29,7 @@ import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
 import java.io.Serializable;
 
 /**
- * This class is for use with {@link Bytecode} and for serialization purposes. It is not meant for direct use with
+ * This class is for use with {@link GremlinLang} and for serialization purposes. It is not meant for direct use with
  * {@link TraversalSource#withStrategies(TraversalStrategy[])}.
  *
  * @author Marko A. Rodriguez (http://markorodriguez.com)
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/AnonymizingTypeTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/AnonymizingTypeTranslator.java
index aab8e95b93..b7897d2aff 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/AnonymizingTypeTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/AnonymizingTypeTranslator.java
@@ -20,7 +20,7 @@
 package org.apache.tinkerpop.gremlin.process.traversal.translator;
 
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Script;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -34,7 +34,7 @@ import java.util.Map;
 import java.util.UUID;
 
 /**
- * This Translator will translate {@link Bytecode} into a representation that has been stripped of any user data
+ * This Translator will translate {@link GremlinLang} into a representation that has been stripped of any user data
  * (anonymized). A default anonymizer is provided, but can be replaced with a custom anonymizer as needed. The
  * default anonymizer replaces any String, Numeric, Date, Timestamp, or UUID with a type-based token. Identical values
  * will receive the same token (e.g. if "foo" is assigned "string0" then all occurrences of "foo" will be replaced
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/DotNetTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/DotNetTranslator.java
index dffa03828f..1ff0cb1350 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/DotNetTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/DotNetTranslator.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.translator;
 
 import org.apache.commons.lang3.EnumUtils;
 import org.apache.commons.text.StringEscapeUtils;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Pick;
@@ -108,7 +108,7 @@ public final class DotNetTranslator implements Translator.ScriptTranslator {
     }
 
     @Override
-    public Script translate(final Bytecode bytecode) {
+    public Script translate(final GremlinLang bytecode) {
         return typeTranslator.apply(traversalSource, bytecode);
     }
 
@@ -200,8 +200,8 @@ public final class DotNetTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceCardinalityValue(final Bytecode o) {
-            final Bytecode.Instruction inst = o.getSourceInstructions().get(0);
+        protected Script produceCardinalityValue(final GremlinLang o) {
+            final GremlinLang.Instruction inst = o.getSourceInstructions().get(0);
             final String card = inst.getArguments()[0].toString();
             script.append("CardinalityValue." + card.substring(0, 1).toUpperCase() + card.substring(1) + "(");
             convertToScript(inst.getArguments()[1]);
@@ -346,10 +346,10 @@ public final class DotNetTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceScript(final String traversalSource, final Bytecode o) {
+        protected Script produceScript(final String traversalSource, final GremlinLang o) {
             script.append(traversalSource);
             int instructionPosition = 0;
-            for (final Bytecode.Instruction instruction : o.getInstructions()) {
+            for (final GremlinLang.Instruction instruction : o.getInstructions()) {
                 final String methodName = instruction.getOperator();
                 // perhaps too many if/then conditions for specifying generics. doesnt' seem like there is a clear
                 // way to refactor this more nicely though.
@@ -397,7 +397,7 @@ public final class DotNetTranslator implements Translator.ScriptTranslator {
                         if (null == instArg) {
                             script.append("(IDictionary<object,object>) null");
                         } else {
-                            if (instArg instanceof Traversal || instArg instanceof Bytecode) {
+                            if (instArg instanceof Traversal || instArg instanceof GremlinLang) {
                                 script.append("(ITraversal) ");
                             } else {
                                 script.append("(IDictionary<object,object>) ");
@@ -422,7 +422,7 @@ public final class DotNetTranslator implements Translator.ScriptTranslator {
                         }
                         if (instArgs.length > 1) {
                             // [1] could be Map or Traversal
-                            if (instArgs[1] instanceof Traversal || instArgs[1] instanceof Bytecode) {
+                            if (instArgs[1] instanceof Traversal || instArgs[1] instanceof GremlinLang) {
                                 script.append("(ITraversal) ");
                             } else {
                                 script.append("(IDictionary<object,object>) ");
@@ -442,7 +442,7 @@ public final class DotNetTranslator implements Translator.ScriptTranslator {
                         // trying to catch option(Merge,Traversal|Map)
                         convertToScript(instArgs[0]);
                         script.append(", ");
-                        if (instArgs[1] instanceof Traversal || instArgs[1] instanceof Bytecode) {
+                        if (instArgs[1] instanceof Traversal || instArgs[1] instanceof GremlinLang) {
                             script.append("(ITraversal) ");
                         } else {
                             script.append("(IDictionary<object,object>) ");
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GolangTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GolangTranslator.java
index 577bc7e0a1..c04cc58b92 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GolangTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GolangTranslator.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.translator;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.text.StringEscapeUtils;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Pick;
 import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
@@ -51,7 +51,7 @@ import java.util.Set;
 import java.util.UUID;
 
 /**
- * Translates Gremlin {@link Bytecode} into a Golang string representation.
+ * Translates Gremlin {@link GremlinLang} into a Golang string representation.
  *
  * @author Simon Zhao (simonz@bitquilltech.com)
  */
@@ -95,7 +95,7 @@ public final class GolangTranslator implements Translator.ScriptTranslator {
     }
 
     @Override
-    public Script translate(final Bytecode bytecode) {
+    public Script translate(final GremlinLang bytecode) {
         return typeTranslator.apply(traversalSource, bytecode);
     }
 
@@ -182,8 +182,8 @@ public final class GolangTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceCardinalityValue(final Bytecode o) {
-            final Bytecode.Instruction inst = o.getSourceInstructions().get(0);
+        protected Script produceCardinalityValue(final GremlinLang o) {
+            final GremlinLang.Instruction inst = o.getSourceInstructions().get(0);
             final String card = inst.getArguments()[0].toString();
             script.append(GO_PACKAGE_NAME + "CardinalityValue." + card.substring(0, 1).toUpperCase() + card.substring(1) + "(");
             convertToScript(inst.getArguments()[1]);
@@ -301,10 +301,10 @@ public final class GolangTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceScript(final String traversalSource, final Bytecode o) {
+        protected Script produceScript(final String traversalSource, final GremlinLang o) {
             final String source = traversalSource.equals("__") ? GO_PACKAGE_NAME + "T__" : traversalSource;
             script.append(source);
-            for (final Bytecode.Instruction instruction : o.getInstructions()) {
+            for (final GremlinLang.Instruction instruction : o.getInstructions()) {
                 final String methodName = instruction.getOperator();
                 final Object[] arguments = instruction.getArguments();
 
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java
index 969cd00e8d..80473e8f6d 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslator.java
@@ -22,7 +22,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.translator;
 import org.apache.commons.configuration2.ConfigurationConverter;
 import org.apache.commons.text.StringEscapeUtils;
 import org.apache.tinkerpop.gremlin.jsr223.CoreImports;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Pick;
 import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
@@ -98,7 +98,7 @@ public final class GroovyTranslator implements Translator.ScriptTranslator {
     }
 
     @Override
-    public Script translate(final Bytecode bytecode) {
+    public Script translate(final GremlinLang bytecode) {
         return typeTranslator.apply(traversalSource, bytecode);
     }
 
@@ -207,8 +207,8 @@ public final class GroovyTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceCardinalityValue(final Bytecode o) {
-            final Bytecode.Instruction inst = o.getSourceInstructions().get(0);
+        protected Script produceCardinalityValue(final GremlinLang o) {
+            final GremlinLang.Instruction inst = o.getSourceInstructions().get(0);
             script.append("VertexProperty.Cardinality." + inst.getArguments()[0] + "(");
             convertToScript(inst.getArguments()[1]);
             script.append(")");
@@ -333,9 +333,9 @@ public final class GroovyTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceScript(final String traversalSource, final Bytecode bytecode) {
+        protected Script produceScript(final String traversalSource, final GremlinLang bytecode) {
             script.append(traversalSource);
-            for (final Bytecode.Instruction instruction : bytecode.getInstructions()) {
+            for (final GremlinLang.Instruction instruction : bytecode.getInstructions()) {
                 final String methodName = instruction.getOperator();
                 if (0 == instruction.getArguments().length) {
                     script.append(".").append(methodName).append("()");
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/JavascriptTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/JavascriptTranslator.java
index 04c503b80f..f1d91cddb8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/JavascriptTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/JavascriptTranslator.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.translator;
 
 import org.apache.commons.configuration2.ConfigurationConverter;
 import org.apache.commons.text.StringEscapeUtils;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Pick;
 import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
@@ -93,7 +93,7 @@ public final class JavascriptTranslator implements Translator.ScriptTranslator {
     }
 
     @Override
-    public Script translate(final Bytecode bytecode) {
+    public Script translate(final GremlinLang bytecode) {
         return typeTranslator.apply(traversalSource, bytecode);
     }
 
@@ -186,8 +186,8 @@ public final class JavascriptTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceCardinalityValue(final Bytecode o) {
-            final Bytecode.Instruction inst = o.getSourceInstructions().get(0);
+        protected Script produceCardinalityValue(final GremlinLang o) {
+            final GremlinLang.Instruction inst = o.getSourceInstructions().get(0);
             script.append("CardinalityValue." + inst.getArguments()[0] + "(");
             convertToScript(inst.getArguments()[1]);
             script.append(")");
@@ -299,9 +299,9 @@ public final class JavascriptTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceScript(final String traversalSource, final Bytecode o) {
+        protected Script produceScript(final String traversalSource, final GremlinLang o) {
             script.append(traversalSource);
-            for (final Bytecode.Instruction instruction : o.getInstructions()) {
+            for (final GremlinLang.Instruction instruction : o.getInstructions()) {
                 final String methodName = instruction.getOperator();
                 if (0 == instruction.getArguments().length) {
                     script.append(".").append(resolveSymbol(methodName)).append("()");
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslator.java
index 5c29303df3..3f78e06ea8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/translator/PythonTranslator.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.translator;
 
 import org.apache.commons.configuration2.ConfigurationConverter;
 import org.apache.commons.text.StringEscapeUtils;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Pick;
 import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions;
@@ -58,7 +58,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 /**
- * Translates Gremlin {@link Bytecode} into a Python string representation.
+ * Translates Gremlin {@link GremlinLang} into a Python string representation.
  *
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  * @author Stephen Mallette (http://stephen.genoprime.com)
@@ -107,7 +107,7 @@ public final class PythonTranslator implements Translator.ScriptTranslator {
     }
 
     @Override
-    public Script translate(final Bytecode bytecode) {
+    public Script translate(final GremlinLang bytecode) {
         return typeTranslator.apply(traversalSource, bytecode);
     }
 
@@ -297,9 +297,9 @@ public final class PythonTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceScript(final String traversalSource, final Bytecode o) {
+        protected Script produceScript(final String traversalSource, final GremlinLang o) {
             script.append(traversalSource);
-            for (final Bytecode.Instruction instruction : o.getInstructions()) {
+            for (final GremlinLang.Instruction instruction : o.getInstructions()) {
                 final String methodName = instruction.getOperator();
                 final Object[] arguments = instruction.getArguments();
                 if (0 == arguments.length)
@@ -375,8 +375,8 @@ public final class PythonTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceCardinalityValue(final Bytecode o) {
-            final Bytecode.Instruction inst = o.getSourceInstructions().get(0);
+        protected Script produceCardinalityValue(final GremlinLang o) {
+            final GremlinLang.Instruction inst = o.getSourceInstructions().get(0);
             script.append("CardinalityValue." + resolveSymbol(inst.getArguments()[0].toString()) + "(");
             convertToScript(inst.getArguments()[1]);
             script.append(")");
@@ -398,9 +398,9 @@ public final class PythonTranslator implements Translator.ScriptTranslator {
         }
 
         @Override
-        protected Script produceScript(final String traversalSource, final Bytecode o) {
+        protected Script produceScript(final String traversalSource, final GremlinLang o) {
           script.append(traversalSource);
-          for (final Bytecode.Instruction instruction : o.getInstructions()) {
+          for (final GremlinLang.Instruction instruction : o.getInstructions()) {
             final String methodName = instruction.getOperator();
             final Object[] arguments = instruction.getArguments();
             if (0 == arguments.length)
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/BytecodeHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/BytecodeHelper.java
index 718221aa4d..dcb7ca58b5 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/BytecodeHelper.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/BytecodeHelper.java
@@ -24,7 +24,7 @@ import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PageRank
 import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PeerPressureVertexProgramStep;
 import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ProgramVertexProgramStep;
 import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ShortestPathVertexProgramStep;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.GraphOp;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
@@ -161,11 +161,9 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SubgraphSt
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.TraversalSideEffectStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.TreeSideEffectStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.ProfileStep;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory;
 import org.apache.tinkerpop.gremlin.util.function.Lambda;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
@@ -177,7 +175,7 @@ import java.util.function.Predicate;
 import java.util.stream.Stream;
 
 /**
- * Utility class for parsing {@link Bytecode}.
+ * Utility class for parsing {@link GremlinLang}.
  *
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  * @author Stephen Mallette (http://stephen.genoprime.com)
@@ -343,22 +341,22 @@ public final class BytecodeHelper {
     }
 
     /**
-     * Parses {@link Bytecode} to find {@link TraversalStrategy} objects added in the source instructions.
+     * Parses {@link GremlinLang} to find {@link TraversalStrategy} objects added in the source instructions.
      */
-    public static <A extends TraversalStrategy> Iterator<A> findStrategies(final Bytecode bytecode, final Class<A> clazz) {
+    public static <A extends TraversalStrategy> Iterator<A> findStrategies(final GremlinLang bytecode, final Class<A> clazz) {
         return IteratorUtils.map(
                 IteratorUtils.filter(bytecode.getSourceInstructions().iterator(),
                         s -> s.getOperator().equals(TraversalSource.Symbols.withStrategies) && clazz.isAssignableFrom(s.getArguments()[0].getClass())),
                 os -> (A) os.getArguments()[0]);
     }
 
-    public static Bytecode filterInstructions(final Bytecode bytecode, final Predicate<Bytecode.Instruction> predicate) {
-        final Bytecode clone = new Bytecode();
-        for (final Bytecode.Instruction instruction : bytecode.getSourceInstructions()) {
+    public static GremlinLang filterInstructions(final GremlinLang bytecode, final Predicate<GremlinLang.Instruction> predicate) {
+        final GremlinLang clone = new GremlinLang();
+        for (final GremlinLang.Instruction instruction : bytecode.getSourceInstructions()) {
             if (predicate.test(instruction))
                 clone.addSource(instruction.getOperator(), instruction.getArguments());
         }
-        for (final Bytecode.Instruction instruction : bytecode.getStepInstructions()) {
+        for (final GremlinLang.Instruction instruction : bytecode.getStepInstructions()) {
             if (predicate.test(instruction))
                 clone.addStep(instruction.getOperator(), instruction.getArguments());
         }
@@ -368,17 +366,17 @@ public final class BytecodeHelper {
     /**
      * Checks if the bytecode is one of the standard {@link GraphOp} options.
      */
-    public static boolean isGraphOperation(final Bytecode bytecode) {
+    public static boolean isGraphOperation(final GremlinLang bytecode) {
         return Stream.of(GraphOp.values()).anyMatch(op -> op.equals(bytecode));
     }
 
-    public static Optional<String> getLambdaLanguage(final Bytecode bytecode) {
-        for (final Bytecode.Instruction instruction : bytecode.getInstructions()) {
+    public static Optional<String> getLambdaLanguage(final GremlinLang bytecode) {
+        for (final GremlinLang.Instruction instruction : bytecode.getInstructions()) {
             for (Object object : instruction.getArguments()) {
                 if (object instanceof Lambda)
                     return Optional.of(((Lambda) object).getLambdaLanguage());
-                else if (object instanceof Bytecode) {
-                    final Optional<String> temp = BytecodeHelper.getLambdaLanguage((Bytecode) object);
+                else if (object instanceof GremlinLang) {
+                    final Optional<String> temp = BytecodeHelper.getLambdaLanguage((GremlinLang) object);
                     if (temp.isPresent())
                         return temp;
                 }
@@ -387,14 +385,14 @@ public final class BytecodeHelper {
         return Optional.empty();
     }
 
-    public static void removeBindings(final Bytecode bytecode) {
-        for (final Bytecode.Instruction instruction : bytecode.getInstructions()) {
+    public static void removeBindings(final GremlinLang bytecode) {
+        for (final GremlinLang.Instruction instruction : bytecode.getInstructions()) {
             final Object[] arguments = instruction.getArguments();
             for (int i = 0; i < arguments.length; i++) {
-                if (arguments[i] instanceof Bytecode.Binding)
-                    arguments[i] = ((Bytecode.Binding) arguments[i]).value();
-                else if (arguments[i] instanceof Bytecode)
-                    removeBindings((Bytecode) arguments[i]);
+                if (arguments[i] instanceof GremlinLang.Binding)
+                    arguments[i] = ((GremlinLang.Binding) arguments[i]).value();
+                else if (arguments[i] instanceof GremlinLang)
+                    removeBindings((GremlinLang) arguments[i]);
             }
         }
     }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
index cb69a7a121..caaf2aeec0 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DefaultTraversal.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.process.traversal.util;
 
 import org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.VertexProgramStep;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
@@ -68,9 +68,9 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
 
     protected boolean locked = false;
     protected boolean closed = false;
-    protected Bytecode bytecode;
+    protected GremlinLang bytecode;
 
-    private DefaultTraversal(final Graph graph, final TraversalStrategies traversalStrategies, final Bytecode bytecode) {
+    private DefaultTraversal(final Graph graph, final TraversalStrategies traversalStrategies, final GremlinLang bytecode) {
         this.graph = graph;
         this.strategies = traversalStrategies;
         this.bytecode = bytecode;
@@ -78,29 +78,29 @@ public class DefaultTraversal<S, E> implements Traversal.Admin<S, E> {
     }
 
     public DefaultTraversal(final Graph graph) {
-        this(graph, TraversalStrategies.GlobalCache.getStrategies(graph.getClass()), new Bytecode());
+        this(graph, TraversalStrategies.GlobalCache.getStrategies(graph.getClass()), new GremlinLang());
     }
 
     public DefaultTraversal(final TraversalSource traversalSource) {
-        this(traversalSource.getGraph(), traversalSource.getStrategies(), traversalSource.getBytecode());
+        this(traversalSource.getGraph(), traversalSource.getStrategies(), traversalSource.getGremlinLang());
         this.g = traversalSource;
     }
 
     public DefaultTraversal(final TraversalSource traversalSource, final DefaultTraversal.Admin<S,E> traversal) {
-        this(traversalSource.getGraph(), traversalSource.getStrategies(), traversal.getGremlincode());
+        this(traversalSource.getGraph(), traversalSource.getStrategies(), traversal.getGremlinLang());
         this.g = traversalSource;
         steps.addAll(traversal.getSteps());
     }
 
     public DefaultTraversal() {
-        this(EmptyGraph.instance(), TraversalStrategies.GlobalCache.getStrategies(EmptyGraph.class), new Bytecode());
+        this(EmptyGraph.instance(), TraversalStrategies.GlobalCache.getStrategies(EmptyGraph.class), new GremlinLang());
     }
 
-    public DefaultTraversal(final Bytecode bytecode) {
+    public DefaultTraversal(final GremlinLang bytecode) {
         this(EmptyGraph.instance(), TraversalStrategies.GlobalCache.getStrategies(EmptyGraph.class), bytecode);
     }
 
-    public Bytecode getGremlincode() {
+    public GremlinLang getGremlinLang() {
         return this.bytecode;
     }
 
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java
index fb9753fb60..c891fd8047 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.util;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
@@ -53,8 +53,8 @@ public final class EmptyTraversal<S, E> implements Traversal.Admin<S, E> {
 
     }
 
-    public Bytecode getGremlincode() {
-        return new Bytecode();
+    public GremlinLang getGremlinLang() {
+        return new GremlinLang();
     }
 
     @Override
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java
index 428bfb4b24..983c14bf85 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.structure.io.binary;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.DT;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
 import org.apache.tinkerpop.gremlin.process.traversal.Operator;
@@ -159,8 +159,8 @@ public class TypeSerializerRegistry {
             new RegistryEntry<>(Graph.class, new GraphSerializer()),
             new RegistryEntry<>(Vertex.class, new VertexSerializer()),
             new RegistryEntry<>(SackFunctions.Barrier.class, EnumSerializer.BarrierSerializer),
-            new RegistryEntry<>(Bytecode.Binding.class, new BindingSerializer()),
-            new RegistryEntry<>(Bytecode.class, new ByteCodeSerializer()),
+            new RegistryEntry<>(GremlinLang.Binding.class, new BindingSerializer()),
+            new RegistryEntry<>(GremlinLang.class, new ByteCodeSerializer()),
             new RegistryEntry<>(VertexProperty.Cardinality.class, EnumSerializer.CardinalitySerializer),
             new RegistryEntry<>(Column.class, EnumSerializer.ColumnSerializer),
             new RegistryEntry<>(Direction.class, EnumSerializer.DirectionSerializer),
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/BindingSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/BindingSerializer.java
index 6975291271..bef51c9d19 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/BindingSerializer.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/BindingSerializer.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.structure.io.binary.types;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.structure.io.binary.DataType;
 import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryReader;
 import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryWriter;
@@ -29,20 +29,20 @@ import java.io.IOException;
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
-public class BindingSerializer extends SimpleTypeSerializer<Bytecode.Binding> {
+public class BindingSerializer extends SimpleTypeSerializer<GremlinLang.Binding> {
 
     public BindingSerializer() {
         super(DataType.BINDING);
     }
 
     @Override
-    protected Bytecode.Binding readValue(final Buffer buffer, final GraphBinaryReader context) throws IOException {
+    protected GremlinLang.Binding readValue(final Buffer buffer, final GraphBinaryReader context) throws IOException {
         final String k = context.readValue(buffer, String.class, false);
-        return new Bytecode.Binding<>(k, context.read(buffer));
+        return new GremlinLang.Binding<>(k, context.read(buffer));
     }
 
     @Override
-    protected void writeValue(final Bytecode.Binding value, final Buffer buffer, final GraphBinaryWriter context) throws IOException {
+    protected void writeValue(final GremlinLang.Binding value, final Buffer buffer, final GraphBinaryWriter context) throws IOException {
         context.writeValue(value.variable(), buffer, false);
         context.write(value.value(), buffer);
     }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/ByteCodeSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/ByteCodeSerializer.java
index 2adf64d1a3..3dcd3fbf14 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/ByteCodeSerializer.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/ByteCodeSerializer.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.structure.io.binary.types;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.structure.io.binary.DataType;
 import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryReader;
 import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryWriter;
@@ -27,14 +27,14 @@ import org.apache.tinkerpop.gremlin.structure.io.Buffer;
 import java.io.IOException;
 import java.util.List;
 
-public class ByteCodeSerializer extends SimpleTypeSerializer<Bytecode> {
+public class ByteCodeSerializer extends SimpleTypeSerializer<GremlinLang> {
     public ByteCodeSerializer() {
         super(DataType.BYTECODE);
     }
 
     @Override
-    protected Bytecode readValue(final Buffer buffer, final GraphBinaryReader context) throws IOException {
-        final Bytecode result = new Bytecode();
+    protected GremlinLang readValue(final Buffer buffer, final GraphBinaryReader context) throws IOException {
+        final GremlinLang result = new GremlinLang();
 
         final int stepsLength = buffer.readInt();
         for (int i = 0; i < stepsLength; i++) {
@@ -59,9 +59,9 @@ public class ByteCodeSerializer extends SimpleTypeSerializer<Bytecode> {
     }
 
     @Override
-    protected void writeValue(final Bytecode value, final Buffer buffer, final GraphBinaryWriter context) throws IOException {
-        final List<Bytecode.Instruction> steps = value.getStepInstructions();
-        final List<Bytecode.Instruction> sources = value.getSourceInstructions();
+    protected void writeValue(final GremlinLang value, final Buffer buffer, final GraphBinaryWriter context) throws IOException {
+        final List<GremlinLang.Instruction> steps = value.getStepInstructions();
+        final List<GremlinLang.Instruction> sources = value.getSourceInstructions();
         // 2 buffers for the length + plus 2 buffers per each step and source
 
         writeInstructions(buffer, context, steps);
@@ -69,11 +69,11 @@ public class ByteCodeSerializer extends SimpleTypeSerializer<Bytecode> {
     }
 
     private void writeInstructions(final Buffer buffer, final GraphBinaryWriter context,
-                                   final List<Bytecode.Instruction> instructions) throws IOException {
+                                   final List<GremlinLang.Instruction> instructions) throws IOException {
 
         context.writeValue(instructions.size(), buffer, false);
 
-        for (Bytecode.Instruction instruction : instructions) {
+        for (GremlinLang.Instruction instruction : instructions) {
             context.writeValue(instruction.getOperator(), buffer, false);
             fillArgumentsBuffer(instruction.getArguments(), buffer, context);
         }
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/TraversalStrategySerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/TraversalStrategySerializer.java
index 5ed5dad22b..386804fb83 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/TraversalStrategySerializer.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/TraversalStrategySerializer.java
@@ -59,7 +59,7 @@ public class TraversalStrategySerializer extends SimpleTypeSerializer<TraversalS
         final Map<Object,Object> newConf = new LinkedHashMap<>(conf.size());
         conf.entrySet().forEach(entry -> {
             if (entry.getValue() instanceof Traversal)
-                newConf.put(entry.getKey(), ((Traversal) entry.getValue()).asAdmin().getGremlincode());
+                newConf.put(entry.getKey(), ((Traversal) entry.getValue()).asAdmin().getGremlinLang());
             else
                 newConf.put(entry.getKey(), entry.getValue());
         });
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
index d2266edcfd..567a9deb90 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
@@ -20,7 +20,7 @@ package org.apache.tinkerpop.gremlin.structure.io.graphson;
 
 import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy;
 import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.GraphFilterStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.DT;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
 import org.apache.tinkerpop.gremlin.process.traversal.Operator;
@@ -166,8 +166,8 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
                     put(Traverser.class, "Traverser");
                     put(Tree.class, "Tree");
                     put(BulkSet.class, "BulkSet");
-                    put(Bytecode.class, "Bytecode");
-                    put(Bytecode.Binding.class, "Binding");
+                    put(GremlinLang.class, "Bytecode");
+                    put(GremlinLang.Binding.class, "Binding");
                     put(AndP.class, "P");
                     put(OrP.class, "P");
                     put(P.class, "P");
@@ -259,7 +259,7 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
             // traversal
             addSerializer(BulkSet.class, new TraversalSerializersV3.BulkSetJacksonSerializer());
             addSerializer(Traversal.class, new TraversalSerializersV3.TraversalJacksonSerializer());
-            addSerializer(Bytecode.class, new TraversalSerializersV3.BytecodeJacksonSerializer());
+            addSerializer(GremlinLang.class, new TraversalSerializersV3.BytecodeJacksonSerializer());
             Stream.of(VertexProperty.Cardinality.class,
                     Column.class,
                     Direction.class,
@@ -274,7 +274,7 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
                     T.class).forEach(e -> addSerializer(e, new TraversalSerializersV3.EnumJacksonSerializer()));
             addSerializer(P.class, new TraversalSerializersV3.PJacksonSerializer());
             addSerializer(Lambda.class, new TraversalSerializersV3.LambdaJacksonSerializer());
-            addSerializer(Bytecode.Binding.class, new TraversalSerializersV3.BindingJacksonSerializer());
+            addSerializer(GremlinLang.Binding.class, new TraversalSerializersV3.BindingJacksonSerializer());
             addSerializer(Traverser.class, new TraversalSerializersV3.TraverserJacksonSerializer());
             addSerializer(TraversalStrategy.class, new TraversalSerializersV3.TraversalStrategyJacksonSerializer());
 
@@ -304,8 +304,8 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
 
             // traversal
             addDeserializer(BulkSet.class, new TraversalSerializersV3.BulkSetJacksonDeserializer());
-            addDeserializer(Bytecode.class, new TraversalSerializersV3.BytecodeJacksonDeserializer());
-            addDeserializer(Bytecode.Binding.class, new TraversalSerializersV3.BindingJacksonDeserializer());
+            addDeserializer(GremlinLang.class, new TraversalSerializersV3.BytecodeJacksonDeserializer());
+            addDeserializer(GremlinLang.Binding.class, new TraversalSerializersV3.BindingJacksonDeserializer());
             Stream.of(VertexProperty.Cardinality.values(),
                     Column.values(),
                     Direction.values(),
@@ -419,8 +419,8 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
                     put(Traverser.class, "Traverser");
                     put(Tree.class, "Tree");
                     put(BulkSet.class, "BulkSet");
-                    put(Bytecode.class, "Bytecode");
-                    put(Bytecode.Binding.class, "Binding");
+                    put(GremlinLang.class, "Bytecode");
+                    put(GremlinLang.Binding.class, "Binding");
                     put(AndP.class, "P");
                     put(OrP.class, "P");
                     put(P.class, "P");
@@ -512,7 +512,7 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
             // traversal
             addSerializer(BulkSet.class, new TraversalSerializersV3.BulkSetJacksonSerializer());
             addSerializer(Traversal.class, new TraversalSerializersV3.TraversalJacksonSerializer());
-            addSerializer(Bytecode.class, new TraversalSerializersV3.BytecodeJacksonSerializer());
+            addSerializer(GremlinLang.class, new TraversalSerializersV3.BytecodeJacksonSerializer());
             Stream.of(VertexProperty.Cardinality.class,
                     Column.class,
                     Direction.class,
@@ -527,7 +527,7 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
                     T.class).forEach(e -> addSerializer(e, new TraversalSerializersV3.EnumJacksonSerializer()));
             addSerializer(P.class, new TraversalSerializersV3.PJacksonSerializer());
             addSerializer(Lambda.class, new TraversalSerializersV3.LambdaJacksonSerializer());
-            addSerializer(Bytecode.Binding.class, new TraversalSerializersV3.BindingJacksonSerializer());
+            addSerializer(GremlinLang.Binding.class, new TraversalSerializersV3.BindingJacksonSerializer());
             addSerializer(Traverser.class, new TraversalSerializersV3.TraverserJacksonSerializer());
             addSerializer(TraversalStrategy.class, new TraversalSerializersV3.TraversalStrategyJacksonSerializer());
 
@@ -557,8 +557,8 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
 
             // traversal
             addDeserializer(BulkSet.class, new TraversalSerializersV3.BulkSetJacksonDeserializer());
-            addDeserializer(Bytecode.class, new TraversalSerializersV3.BytecodeJacksonDeserializer());
-            addDeserializer(Bytecode.Binding.class, new TraversalSerializersV3.BindingJacksonDeserializer());
+            addDeserializer(GremlinLang.class, new TraversalSerializersV3.BytecodeJacksonDeserializer());
+            addDeserializer(GremlinLang.Binding.class, new TraversalSerializersV3.BindingJacksonDeserializer());
             Stream.of(VertexProperty.Cardinality.values(),
                     Column.values(),
                     Direction.values(),
@@ -667,8 +667,8 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
                     put(TraversalExplanation.class, "TraversalExplanation");
                     put(Traverser.class, "Traverser");
                     put(Tree.class, "Tree");
-                    put(Bytecode.class, "Bytecode");
-                    put(Bytecode.Binding.class, "Binding");
+                    put(GremlinLang.class, "Bytecode");
+                    put(GremlinLang.Binding.class, "Binding");
                     put(AndP.class, "P");
                     put(OrP.class, "P");
                     put(P.class, "P");
@@ -754,7 +754,7 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
 
             // traversal
             addSerializer(Traversal.class, new TraversalSerializersV2.TraversalJacksonSerializer());
-            addSerializer(Bytecode.class, new TraversalSerializersV2.BytecodeJacksonSerializer());
+            addSerializer(GremlinLang.class, new TraversalSerializersV2.BytecodeJacksonSerializer());
             Stream.of(VertexProperty.Cardinality.class,
                     Column.class,
                     Direction.class,
@@ -769,7 +769,7 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
                     T.class).forEach(e -> addSerializer(e, new TraversalSerializersV2.EnumJacksonSerializer()));
             addSerializer(P.class, new TraversalSerializersV2.PJacksonSerializer());
             addSerializer(Lambda.class, new TraversalSerializersV2.LambdaJacksonSerializer());
-            addSerializer(Bytecode.Binding.class, new TraversalSerializersV2.BindingJacksonSerializer());
+            addSerializer(GremlinLang.Binding.class, new TraversalSerializersV2.BindingJacksonSerializer());
             addSerializer(Traverser.class, new TraversalSerializersV2.TraverserJacksonSerializer());
             addSerializer(TraversalStrategy.class, new TraversalSerializersV2.TraversalStrategyJacksonSerializer());
 
@@ -791,8 +791,8 @@ abstract class GraphSONModule extends TinkerPopJacksonModule {
             addDeserializer(Double.class, new GraphSONSerializersV2.DoubleJacksonDeserializer());
 
             // traversal
-            addDeserializer(Bytecode.class, new TraversalSerializersV2.BytecodeJacksonDeserializer());
-            addDeserializer(Bytecode.Binding.class, new TraversalSerializersV2.BindingJacksonDeserializer());
+            addDeserializer(GremlinLang.class, new TraversalSerializersV2.BytecodeJacksonDeserializer());
+            addDeserializer(GremlinLang.Binding.class, new TraversalSerializersV2.BindingJacksonDeserializer());
             Stream.of(VertexProperty.Cardinality.values(),
                     Column.values(),
                     Direction.values(),
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2.java
index 6508d48e5c..5b2912a8e3 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV2.java
@@ -22,7 +22,7 @@ package org.apache.tinkerpop.gremlin.structure.io.graphson;
 import org.apache.commons.configuration2.ConfigurationConverter;
 import org.apache.commons.configuration2.MapConfiguration;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.TextP;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
@@ -71,7 +71,7 @@ final class TraversalSerializersV2 {
         @Override
         public void serialize(final Traversal traversal, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
-            jsonGenerator.writeObject(traversal.asAdmin().getGremlincode());
+            jsonGenerator.writeObject(traversal.asAdmin().getGremlinLang());
         }
 
         @Override
@@ -82,19 +82,19 @@ final class TraversalSerializersV2 {
 
     }
 
-    final static class BytecodeJacksonSerializer extends StdScalarSerializer<Bytecode> {
+    final static class BytecodeJacksonSerializer extends StdScalarSerializer<GremlinLang> {
 
         public BytecodeJacksonSerializer() {
-            super(Bytecode.class);
+            super(GremlinLang.class);
         }
 
         @Override
-        public void serialize(final Bytecode bytecode, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
+        public void serialize(final GremlinLang bytecode, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
             jsonGenerator.writeStartObject();
             if (bytecode.getSourceInstructions().iterator().hasNext()) {
                 jsonGenerator.writeArrayFieldStart(GraphSONTokens.SOURCE);
-                for (final Bytecode.Instruction instruction : bytecode.getSourceInstructions()) {
+                for (final GremlinLang.Instruction instruction : bytecode.getSourceInstructions()) {
                     jsonGenerator.writeStartArray();
                     jsonGenerator.writeString(instruction.getOperator());
                     for (final Object argument : instruction.getArguments()) {
@@ -106,7 +106,7 @@ final class TraversalSerializersV2 {
             }
             if (bytecode.getStepInstructions().iterator().hasNext()) {
                 jsonGenerator.writeArrayFieldStart(GraphSONTokens.STEP);
-                for (final Bytecode.Instruction instruction : bytecode.getStepInstructions()) {
+                for (final GremlinLang.Instruction instruction : bytecode.getStepInstructions()) {
                     jsonGenerator.writeStartArray();
                     jsonGenerator.writeString(instruction.getOperator());
                     for (final Object argument : instruction.getArguments()) {
@@ -185,14 +185,14 @@ final class TraversalSerializersV2 {
 
     }
 
-    final static class BindingJacksonSerializer extends StdScalarSerializer<Bytecode.Binding> {
+    final static class BindingJacksonSerializer extends StdScalarSerializer<GremlinLang.Binding> {
 
         public BindingJacksonSerializer() {
-            super(Bytecode.Binding.class);
+            super(GremlinLang.Binding.class);
         }
 
         @Override
-        public void serialize(final Bytecode.Binding binding, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
+        public void serialize(final GremlinLang.Binding binding, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
             jsonGenerator.writeStartObject();
             jsonGenerator.writeStringField(GraphSONTokens.KEY, binding.variable());
@@ -239,15 +239,15 @@ final class TraversalSerializersV2 {
     // DESERIALIZERS //
     //////////////////
 
-    final static class BytecodeJacksonDeserializer extends StdDeserializer<Bytecode> {
+    final static class BytecodeJacksonDeserializer extends StdDeserializer<GremlinLang> {
 
         public BytecodeJacksonDeserializer() {
-            super(Bytecode.class);
+            super(GremlinLang.class);
         }
 
         @Override
-        public Bytecode deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
-            final Bytecode bytecode = new Bytecode();
+        public GremlinLang deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            final GremlinLang bytecode = new GremlinLang();
 
             while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
                 final String current = jsonParser.getCurrentName();
@@ -443,14 +443,14 @@ final class TraversalSerializersV2 {
         }
     }
 
-    final static class BindingJacksonDeserializer extends StdDeserializer<Bytecode.Binding> {
+    final static class BindingJacksonDeserializer extends StdDeserializer<GremlinLang.Binding> {
 
         public BindingJacksonDeserializer() {
-            super(Bytecode.Binding.class);
+            super(GremlinLang.Binding.class);
         }
 
         @Override
-        public Bytecode.Binding deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+        public GremlinLang.Binding deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
             String k = null;
             Object v = null;
 
@@ -463,7 +463,7 @@ final class TraversalSerializersV2 {
                     v = deserializationContext.readValue(jsonParser, Object.class);
                 }
             }
-            return new Bytecode.Binding<>(k, v);
+            return new GremlinLang.Binding<>(k, v);
         }
 
         @Override
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3.java
index 1040dc08ac..bfa9bf66a6 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV3.java
@@ -22,7 +22,7 @@ package org.apache.tinkerpop.gremlin.structure.io.graphson;
 import org.apache.commons.configuration2.ConfigurationConverter;
 import org.apache.commons.configuration2.MapConfiguration;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.TextP;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
@@ -78,7 +78,7 @@ final class TraversalSerializersV3 {
         @Override
         public void serialize(final Traversal traversal, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
-            jsonGenerator.writeObject(traversal.asAdmin().getGremlincode());
+            jsonGenerator.writeObject(traversal.asAdmin().getGremlinLang());
         }
 
         @Override
@@ -89,19 +89,19 @@ final class TraversalSerializersV3 {
 
     }
 
-    final static class BytecodeJacksonSerializer extends StdScalarSerializer<Bytecode> {
+    final static class BytecodeJacksonSerializer extends StdScalarSerializer<GremlinLang> {
 
         public BytecodeJacksonSerializer() {
-            super(Bytecode.class);
+            super(GremlinLang.class);
         }
 
         @Override
-        public void serialize(final Bytecode bytecode, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
+        public void serialize(final GremlinLang bytecode, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
             jsonGenerator.writeStartObject();
             if (bytecode.getSourceInstructions().iterator().hasNext()) {
                 jsonGenerator.writeArrayFieldStart(GraphSONTokens.SOURCE);
-                for (final Bytecode.Instruction instruction : bytecode.getSourceInstructions()) {
+                for (final GremlinLang.Instruction instruction : bytecode.getSourceInstructions()) {
                     jsonGenerator.writeStartArray();
                     jsonGenerator.writeString(instruction.getOperator());
                     for (final Object argument : instruction.getArguments()) {
@@ -113,7 +113,7 @@ final class TraversalSerializersV3 {
             }
             if (bytecode.getStepInstructions().iterator().hasNext()) {
                 jsonGenerator.writeArrayFieldStart(GraphSONTokens.STEP);
-                for (final Bytecode.Instruction instruction : bytecode.getStepInstructions()) {
+                for (final GremlinLang.Instruction instruction : bytecode.getStepInstructions()) {
                     jsonGenerator.writeStartArray();
                     jsonGenerator.writeString(instruction.getOperator());
                     for (final Object argument : instruction.getArguments()) {
@@ -203,14 +203,14 @@ final class TraversalSerializersV3 {
         }
     }
 
-    final static class BindingJacksonSerializer extends StdScalarSerializer<Bytecode.Binding> {
+    final static class BindingJacksonSerializer extends StdScalarSerializer<GremlinLang.Binding> {
 
         public BindingJacksonSerializer() {
-            super(Bytecode.Binding.class);
+            super(GremlinLang.Binding.class);
         }
 
         @Override
-        public void serialize(final Bytecode.Binding binding, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
+        public void serialize(final GremlinLang.Binding binding, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
             jsonGenerator.writeStartObject();
             jsonGenerator.writeStringField(GraphSONTokens.KEY, binding.variable());
@@ -257,17 +257,17 @@ final class TraversalSerializersV3 {
     // DESERIALIZERS //
     //////////////////
 
-    final static class BytecodeJacksonDeserializer extends StdDeserializer<Bytecode> {
+    final static class BytecodeJacksonDeserializer extends StdDeserializer<GremlinLang> {
         private static final JavaType listJavaType = TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, Object.class);
         private static final JavaType listListJavaType = TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, listJavaType);
 
         public BytecodeJacksonDeserializer() {
-            super(Bytecode.class);
+            super(GremlinLang.class);
         }
 
         @Override
-        public Bytecode deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
-            final Bytecode bytecode = new Bytecode();
+        public GremlinLang deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+            final GremlinLang bytecode = new GremlinLang();
 
             while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
                 final String current = jsonParser.getCurrentName();
@@ -536,14 +536,14 @@ final class TraversalSerializersV3 {
         }
     }
 
-    final static class BindingJacksonDeserializer extends StdDeserializer<Bytecode.Binding> {
+    final static class BindingJacksonDeserializer extends StdDeserializer<GremlinLang.Binding> {
 
         public BindingJacksonDeserializer() {
-            super(Bytecode.Binding.class);
+            super(GremlinLang.Binding.class);
         }
 
         @Override
-        public Bytecode.Binding deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+        public GremlinLang.Binding deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
             String k = null;
             Object v = null;
 
@@ -556,7 +556,7 @@ final class TraversalSerializersV3 {
                     v = deserializationContext.readValue(jsonParser, Object.class);
                 }
             }
-            return new Bytecode.Binding<>(k, v);
+            return new GremlinLang.Binding<>(k, v);
         }
 
         @Override
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV1.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV1.java
index 3e7a4c0b91..cabd6b7d80 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV1.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV1.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.structure.io.gryo;
 
 import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Path;
 import org.apache.tinkerpop.gremlin.process.traversal.Text;
@@ -135,16 +135,16 @@ public final class GryoSerializersV1 {
         }
     }
 
-    public final static class BytecodeSerializer implements SerializerShim<Bytecode> {
+    public final static class BytecodeSerializer implements SerializerShim<GremlinLang> {
         @Override
-        public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final Bytecode bytecode) {
+        public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final GremlinLang bytecode) {
             writeInstructions(kryo, output, bytecode.getSourceInstructions());
             writeInstructions(kryo, output, bytecode.getStepInstructions());
         }
 
         @Override
-        public <I extends InputShim> Bytecode read(final KryoShim<I, ?> kryo, final I input, final Class<Bytecode> clazz) {
-            final Bytecode bytecode = new Bytecode();
+        public <I extends InputShim> GremlinLang read(final KryoShim<I, ?> kryo, final I input, final Class<GremlinLang> clazz) {
+            final GremlinLang bytecode = new GremlinLang();
             final int sourceInstructionCount = input.readInt();
             for (int ix = 0; ix < sourceInstructionCount; ix++) {
                 final String operator = input.readString();
@@ -165,9 +165,9 @@ public final class GryoSerializersV1 {
         }
 
         private static <O extends OutputShim> void writeInstructions(final KryoShim<?, O> kryo, final O output,
-                                                                     final List<Bytecode.Instruction> instructions) {
+                                                                     final List<GremlinLang.Instruction> instructions) {
             output.writeInt(instructions.size());
-            for (Bytecode.Instruction inst : instructions) {
+            for (GremlinLang.Instruction inst : instructions) {
                 output.writeString(inst.getOperator());
                 kryo.writeObject(output, inst.getArguments());
             }
@@ -283,18 +283,18 @@ public final class GryoSerializersV1 {
         }
     }
 
-    public final static class BindingSerializer implements SerializerShim<Bytecode.Binding> {
+    public final static class BindingSerializer implements SerializerShim<GremlinLang.Binding> {
         @Override
-        public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final Bytecode.Binding binding) {
+        public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final GremlinLang.Binding binding) {
             output.writeString(binding.variable());
             kryo.writeClassAndObject(output, binding.value());
         }
 
         @Override
-        public <I extends InputShim> Bytecode.Binding read(final KryoShim<I, ?> kryo, final I input, final Class<Bytecode.Binding> clazz) {
+        public <I extends InputShim> GremlinLang.Binding read(final KryoShim<I, ?> kryo, final I input, final Class<GremlinLang.Binding> clazz) {
             final String var = input.readString();
             final Object val = kryo.readClassAndObject(input);
-            return new Bytecode.Binding(var, val);
+            return new GremlinLang.Binding(var, val);
         }
     }
 
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV3.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV3.java
index 9a846a3a2f..2d73a95c83 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV3.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoSerializersV3.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.structure.io.gryo;
 
 import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Path;
 import org.apache.tinkerpop.gremlin.process.traversal.Text;
@@ -250,16 +250,16 @@ public final class GryoSerializersV3 {
         }
     }
 
-    public final static class BytecodeSerializer implements SerializerShim<Bytecode> {
+    public final static class BytecodeSerializer implements SerializerShim<GremlinLang> {
         @Override
-        public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final Bytecode bytecode) {
+        public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final GremlinLang bytecode) {
             writeInstructions(kryo, output, bytecode.getSourceInstructions());
             writeInstructions(kryo, output, bytecode.getStepInstructions());
         }
 
         @Override
-        public <I extends InputShim> Bytecode read(final KryoShim<I, ?> kryo, final I input, final Class<Bytecode> clazz) {
-            final Bytecode bytecode = new Bytecode();
+        public <I extends InputShim> GremlinLang read(final KryoShim<I, ?> kryo, final I input, final Class<GremlinLang> clazz) {
+            final GremlinLang bytecode = new GremlinLang();
             final int sourceInstructionCount = input.readInt();
             for (int ix = 0; ix < sourceInstructionCount; ix++) {
                 final String operator = input.readString();
@@ -280,9 +280,9 @@ public final class GryoSerializersV3 {
         }
 
         private static <O extends OutputShim> void writeInstructions(final KryoShim<?, O> kryo, final O output,
-                                                                     final List<Bytecode.Instruction> instructions) {
+                                                                     final List<GremlinLang.Instruction> instructions) {
             output.writeInt(instructions.size());
-            for (Bytecode.Instruction inst : instructions) {
+            for (GremlinLang.Instruction inst : instructions) {
                 output.writeString(inst.getOperator());
                 kryo.writeObject(output, inst.getArguments());
             }
@@ -398,18 +398,18 @@ public final class GryoSerializersV3 {
         }
     }
 
-    public final static class BindingSerializer implements SerializerShim<Bytecode.Binding> {
+    public final static class BindingSerializer implements SerializerShim<GremlinLang.Binding> {
         @Override
-        public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final Bytecode.Binding binding) {
+        public <O extends OutputShim> void write(final KryoShim<?, O> kryo, final O output, final GremlinLang.Binding binding) {
             output.writeString(binding.variable());
             kryo.writeClassAndObject(output, binding.value());
         }
 
         @Override
-        public <I extends InputShim> Bytecode.Binding read(final KryoShim<I, ?> kryo, final I input, final Class<Bytecode.Binding> clazz) {
+        public <I extends InputShim> GremlinLang.Binding read(final KryoShim<I, ?> kryo, final I input, final Class<GremlinLang.Binding> clazz) {
             final String var = input.readString();
             final Object val = kryo.readClassAndObject(input);
-            return new Bytecode.Binding(var, val);
+            return new GremlinLang.Binding(var, val);
         }
     }
 
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
index f056c8ed2e..c3bc7a92d1 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
@@ -24,7 +24,7 @@ import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decorati
 import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.GraphFilterStrategy;
 import org.apache.tinkerpop.gremlin.process.computer.util.MapMemory;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Contains;
 import org.apache.tinkerpop.gremlin.process.traversal.DT;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
@@ -321,12 +321,12 @@ public enum GryoVersion {
             add(GryoTypeReg.of(ProjectedTraverser.class, 168));
             add(GryoTypeReg.of(DefaultRemoteTraverser.class, 123, new GryoSerializersV3.DefaultRemoteTraverserSerializer()));
 
-            add(GryoTypeReg.of(Bytecode.class, 122, new GryoSerializersV3.BytecodeSerializer()));
+            add(GryoTypeReg.of(GremlinLang.class, 122, new GryoSerializersV3.BytecodeSerializer()));
             add(GryoTypeReg.of(P.class, 124, new GryoSerializersV3.PSerializer()));
             add(GryoTypeReg.of(TextP.class, 186, new GryoSerializersV3.TextPSerializer()));
             add(GryoTypeReg.of(Text.RegexPredicate.class, 197));                                       // ***LAST ID***
             add(GryoTypeReg.of(Lambda.class, 125, new GryoSerializersV3.LambdaSerializer()));
-            add(GryoTypeReg.of(Bytecode.Binding.class, 126, new GryoSerializersV3.BindingSerializer()));
+            add(GryoTypeReg.of(GremlinLang.Binding.class, 126, new GryoSerializersV3.BindingSerializer()));
             add(GryoTypeReg.of(Order.class, 127));
             add(GryoTypeReg.of(Scope.class, 128));
             add(GryoTypeReg.of(VertexProperty.Cardinality.class, 131));
@@ -524,12 +524,12 @@ public enum GryoVersion {
             add(GryoTypeReg.of(ProjectedTraverser.class, 164));
             add(GryoTypeReg.of(DefaultRemoteTraverser.class, 123, new GryoSerializersV1.DefaultRemoteTraverserSerializer()));
 
-            add(GryoTypeReg.of(Bytecode.class, 122, new GryoSerializersV1.BytecodeSerializer()));
+            add(GryoTypeReg.of(GremlinLang.class, 122, new GryoSerializersV1.BytecodeSerializer()));
             add(GryoTypeReg.of(P.class, 124, new GryoSerializersV1.PSerializer()));
             add(GryoTypeReg.of(TextP.class, 186, new GryoSerializersV1.TextPSerializer()));
             add(GryoTypeReg.of(Text.RegexPredicate.class, 197));
             add(GryoTypeReg.of(Lambda.class, 125, new GryoSerializersV1.LambdaSerializer()));
-            add(GryoTypeReg.of(Bytecode.Binding.class, 126, new GryoSerializersV1.BindingSerializer()));
+            add(GryoTypeReg.of(GremlinLang.Binding.class, 126, new GryoSerializersV1.BindingSerializer()));
             add(GryoTypeReg.of(Order.class, 127));
             add(GryoTypeReg.of(Scope.class, 128));
             add(GryoTypeReg.of(VertexProperty.Cardinality.class, 131));
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngineTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngineTest.java
index ab02dc0839..ca699a9902 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngineTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/jsr223/GremlinLangScriptEngineTest.java
@@ -44,7 +44,7 @@ public class GremlinLangScriptEngineTest {
     public void shouldEvalGremlinScript() throws ScriptException {
         final Object result = scriptEngine.eval("g.V()");
         assertThat(result, instanceOf(Traversal.Admin.class));
-        assertEquals(g.V().asAdmin().getGremlincode(), ((Traversal.Admin) result).getGremlincode());
+        assertEquals(g.V().asAdmin().getGremlinLang(), ((Traversal.Admin) result).getGremlinLang());
     }
 
     @Test
@@ -57,13 +57,13 @@ public class GremlinLangScriptEngineTest {
 
         final Object result = scriptEngine.eval("g.V(x, y, z)", b);
         assertThat(result, instanceOf(Traversal.Admin.class));
-        assertEquals(g.V(100, 1000, 10000).asAdmin().getGremlincode(), ((Traversal.Admin) result).getGremlincode());
+        assertEquals(g.V(100, 1000, 10000).asAdmin().getGremlinLang(), ((Traversal.Admin) result).getGremlinLang());
     }
 
     @Test
     public void shouldEvalGremlinBytecode() throws ScriptException {
-        final Object result = scriptEngine.eval(g.V().asAdmin().getGremlincode(), "g");
+        final Object result = scriptEngine.eval(g.V().asAdmin().getGremlinLang(), "g");
         assertThat(result, instanceOf(Traversal.Admin.class));
-        assertEquals(g.V().asAdmin().getGremlincode(), ((Traversal.Admin) result).getGremlincode());
+        assertEquals(g.V().asAdmin().getGremlinLang(), ((Traversal.Admin) result).getGremlinLang());
     }
 }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GraphTraversalSourceVisitorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GraphTraversalSourceVisitorTest.java
index 1407f311fc..1b02447c88 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GraphTraversalSourceVisitorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GraphTraversalSourceVisitorTest.java
@@ -21,7 +21,6 @@ package org.apache.tinkerpop.gremlin.language.grammar;
 import org.antlr.v4.runtime.CharStreams;
 import org.antlr.v4.runtime.CommonTokenStream;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;
 import org.junit.Before;
 import org.junit.Test;
@@ -69,6 +68,6 @@ public class GraphTraversalSourceVisitorTest {
         final GremlinParser.TraversalSourceContext ctx = parser.traversalSource();
         final GraphTraversalSource result = new GraphTraversalSourceVisitor(antlrToLanguage).visitTraversalSource(ctx);
 
-        assertEquals(traversalSource.getBytecode(), result.getBytecode());
+        assertEquals(traversalSource.getGremlinLang(), result.getGremlinLang());
     }
 }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GremlinQueryParserTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GremlinQueryParserTest.java
index a551f04b6d..aa067a836d 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GremlinQueryParserTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GremlinQueryParserTest.java
@@ -44,8 +44,8 @@ public class GremlinQueryParserTest {
                 new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("z", 50)));
         final GraphTraversal<?, ?> t = (GraphTraversal<?, ?>) GremlinQueryParser.parse("g.V().has('name',gt(z))", gremlinAntlrToJava);
 
-        assertEquals(g.V().has("name", P.gt(50)).asAdmin().getGremlincode(),
-                t.asAdmin().getGremlincode());
+        assertEquals(g.V().has("name", P.gt(50)).asAdmin().getGremlinLang(),
+                t.asAdmin().getGremlinLang());
     }
 
     @Test
@@ -57,16 +57,16 @@ public class GremlinQueryParserTest {
                                                                                  "z", 50)));
 
         GraphTraversal<?, ?> t = (GraphTraversal<?, ?>) GremlinQueryParser.parse("g.V().has('name',gt(z))", gremlinAntlrToJava);
-        assertEquals(g.V().has("name", P.gt(50)).asAdmin().getGremlincode(),
-                t.asAdmin().getGremlincode());
+        assertEquals(g.V().has("name", P.gt(50)).asAdmin().getGremlinLang(),
+                t.asAdmin().getGremlinLang());
 
         t = (GraphTraversal<?, ?>) GremlinQueryParser.parse("g.V(x).has('name',gt(z))", gremlinAntlrToJava);
-        assertEquals(g.V(100).has("name", P.gt(50)).asAdmin().getGremlincode(),
-                t.asAdmin().getGremlincode());
+        assertEquals(g.V(100).has("name", P.gt(50)).asAdmin().getGremlinLang(),
+                t.asAdmin().getGremlinLang());
 
         t = (GraphTraversal<?, ?>) GremlinQueryParser.parse("g.V(x, y, 300).has('name',gt(z))", gremlinAntlrToJava);
-        assertEquals(g.V(100, 200, 300).has("name", P.gt(50)).asAdmin().getGremlincode(),
-                t.asAdmin().getGremlincode());
+        assertEquals(g.V(100, 200, 300).has("name", P.gt(50)).asAdmin().getGremlinLang(),
+                t.asAdmin().getGremlinLang());
     }
 
     @Test(expected = GremlinParserException.class)
@@ -96,8 +96,8 @@ public class GremlinQueryParserTest {
                 VariableResolver.NullVariableResolver.instance());
         final GraphTraversal<?, ?> t = (GraphTraversal<?, ?>) GremlinQueryParser.parse("g.V().has('name',gt(z))", gremlinAntlrToJava);
 
-        assertEquals(g.V().has("name", P.gt(null)).asAdmin().getGremlincode(),
-                t.asAdmin().getGremlincode());
+        assertEquals(g.V().has("name", P.gt(null)).asAdmin().getGremlinLang(),
+                t.asAdmin().getGremlinLang());
     }
 
     @Test
@@ -107,7 +107,7 @@ public class GremlinQueryParserTest {
                 VariableResolver.NullVariableResolver.instance());
         final GraphTraversal<?, ?> t = (GraphTraversal<?, ?>) GremlinQueryParser.parse("g.V(a,b,c).has('name',gt(z))", gremlinAntlrToJava);
 
-        assertEquals(g.V(null, null, null).has("name", P.gt(null)).asAdmin().getGremlincode(),
-                t.asAdmin().getGremlincode());
+        assertEquals(g.V(null, null, null).has("name", P.gt(null)).asAdmin().getGremlinLang(),
+                t.asAdmin().getGremlinLang());
     }
 }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitorTest.java
index 7410a30ea9..cc4f0c1fd9 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitorTest.java
@@ -69,8 +69,8 @@ public class TraversalMethodVisitorTest {
     }
     
     private void compare(Object expected, Object actual) {
-        assertEquals(((DefaultGraphTraversal) expected).asAdmin().getGremlincode(),
-                ((DefaultGraphTraversal) actual).asAdmin().getGremlincode());
+        assertEquals(((DefaultGraphTraversal) expected).asAdmin().getGremlinLang(),
+                ((DefaultGraphTraversal) actual).asAdmin().getGremlinLang());
     }
 
     @Test
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalRootVisitorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalRootVisitorTest.java
index a0f9efb017..773ac6b309 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalRootVisitorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalRootVisitorTest.java
@@ -47,8 +47,8 @@ public class TraversalRootVisitorTest {
     }
 
     private void compare(Object expected, Object actual) {
-        assertEquals(((DefaultGraphTraversal) expected).asAdmin().getGremlincode(),
-                ((DefaultGraphTraversal) actual).asAdmin().getGremlincode());
+        assertEquals(((DefaultGraphTraversal) expected).asAdmin().getGremlinLang(),
+                ((DefaultGraphTraversal) actual).asAdmin().getGremlinLang());
     }
 
     private Object eval(String query) {
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitorTest.java
index b23e6fad8f..577fbfa327 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitorTest.java
@@ -88,6 +88,6 @@ public class TraversalSourceSelfMethodVisitorTest {
         final GremlinParser.TraversalSourceSelfMethodContext ctx = parser.traversalSourceSelfMethod();
         final GraphTraversalSource source = new TraversalSourceSelfMethodVisitor(g, new GremlinAntlrToJava()).visitTraversalSourceSelfMethod(ctx);
 
-        assertEquals(expected.getBytecode(), source.getBytecode());
+        assertEquals(expected.getGremlinLang(), source.getGremlinLang());
     }
 }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/BytecodeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/BytecodeTest.java
index 844b7f63ed..72448ba5fc 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/BytecodeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/BytecodeTest.java
@@ -54,21 +54,21 @@ public class BytecodeTest {
         assertNotEquals(traversal1.hashCode(), traversal3.hashCode());
         assertNotEquals(traversal2.hashCode(), traversal3.hashCode());
         //
-        assertEquals(traversal1.getGremlincode(), traversal2.getGremlincode());
-        assertNotEquals(traversal1.getGremlincode(), traversal3.getGremlincode());
-        assertNotEquals(traversal2.getGremlincode(), traversal3.getGremlincode());
+        assertEquals(traversal1.getGremlinLang(), traversal2.getGremlinLang());
+        assertNotEquals(traversal1.getGremlinLang(), traversal3.getGremlinLang());
+        assertNotEquals(traversal2.getGremlinLang(), traversal3.getGremlinLang());
         //
-        assertEquals(traversal1.getGremlincode().hashCode(), traversal2.getGremlincode().hashCode());
-        assertNotEquals(traversal1.getGremlincode().hashCode(), traversal3.getGremlincode().hashCode());
-        assertNotEquals(traversal2.getGremlincode().hashCode(), traversal3.getGremlincode().hashCode());
+        assertEquals(traversal1.getGremlinLang().hashCode(), traversal2.getGremlinLang().hashCode());
+        assertNotEquals(traversal1.getGremlinLang().hashCode(), traversal3.getGremlinLang().hashCode());
+        assertNotEquals(traversal2.getGremlinLang().hashCode(), traversal3.getGremlinLang().hashCode());
 
     }
 
     @Test
     public void shouldCloneCorrectly() {
         final GraphTraversalSource g = EmptyGraph.instance().traversal();
-        final Bytecode bytecode = g.V().out().asAdmin().getGremlincode();
-        final Bytecode bytecodeClone = bytecode.clone();
+        final GremlinLang bytecode = g.V().out().asAdmin().getGremlinLang();
+        final GremlinLang bytecodeClone = bytecode.clone();
         assertEquals(bytecode, bytecodeClone);
         assertEquals(bytecode.hashCode(), bytecodeClone.hashCode());
         bytecodeClone.addStep("in", "created"); // mutate the clone and the original should stay the same
@@ -83,10 +83,10 @@ public class BytecodeTest {
         final Bindings b = Bindings.instance();
         final GraphTraversalSource g = EmptyGraph.instance().traversal();
 
-        final Bytecode bytecode1 = g.V().out(b.of("a", "created")).asAdmin().getGremlincode();
-        final Bytecode bytecode2 = g.V().out(b.of("a", "knows")).asAdmin().getGremlincode();
-        final Bytecode bytecode3 = g.V().out(b.of("b", "knows")).asAdmin().getGremlincode();
-        final Bytecode bytecode4 = g.V().out(b.of("b", "knows")).asAdmin().getGremlincode();
+        final GremlinLang bytecode1 = g.V().out(b.of("a", "created")).asAdmin().getGremlinLang();
+        final GremlinLang bytecode2 = g.V().out(b.of("a", "knows")).asAdmin().getGremlinLang();
+        final GremlinLang bytecode3 = g.V().out(b.of("b", "knows")).asAdmin().getGremlinLang();
+        final GremlinLang bytecode4 = g.V().out(b.of("b", "knows")).asAdmin().getGremlinLang();
 
         assertNotEquals(bytecode1, bytecode2);
         assertNotEquals(bytecode1, bytecode3);
@@ -104,14 +104,14 @@ public class BytecodeTest {
         // adding the choose() step as part of TINKERPOP-2458
         final Bindings b = Bindings.instance();
         final GraphTraversalSource g = EmptyGraph.instance().traversal();
-        final Bytecode bytecode = g.V().in(b.of("a","created")).
+        final GremlinLang bytecode = g.V().in(b.of("a","created")).
                 choose(__.out().count()).
                 option(b.of("two", 2), __.values("name")).
                 option(b.of("three",3), __.values("age")).
                 where(__.out(b.of("b","knows")).
                         has("age",b.of("c",P.gt(32))).
                         map(__.values(b.of("d","name")))).
-                in(b.of("a", "created")).asAdmin().getGremlincode();
+                in(b.of("a", "created")).asAdmin().getGremlinLang();
         assertEquals(6, bytecode.getBindings().size());
         assertEquals("created", bytecode.getBindings().get("a"));
         assertEquals("knows", bytecode.getBindings().get("b"));
@@ -120,25 +120,25 @@ public class BytecodeTest {
         assertEquals(2, bytecode.getBindings().get("two"));
         assertEquals(3, bytecode.getBindings().get("three"));
 
-        Bytecode.Binding binding = (Bytecode.Binding) bytecode.getStepInstructions().get(1).getArguments()[0];
+        GremlinLang.Binding binding = (GremlinLang.Binding) bytecode.getStepInstructions().get(1).getArguments()[0];
         assertEquals("a", binding.variable());
         assertEquals("created", binding.value());
-        binding = (Bytecode.Binding) bytecode.getStepInstructions().get(3).getArguments()[0];
+        binding = (GremlinLang.Binding) bytecode.getStepInstructions().get(3).getArguments()[0];
         assertEquals("two", binding.variable());
         assertEquals(2, binding.value());
-        binding = (Bytecode.Binding) bytecode.getStepInstructions().get(4).getArguments()[0];
+        binding = (GremlinLang.Binding) bytecode.getStepInstructions().get(4).getArguments()[0];
         assertEquals("three", binding.variable());
         assertEquals(3, binding.value());
-        binding = (Bytecode.Binding) ((Bytecode) bytecode.getStepInstructions().get(5).getArguments()[0]).getStepInstructions().get(0).getArguments()[0];
+        binding = (GremlinLang.Binding) ((GremlinLang) bytecode.getStepInstructions().get(5).getArguments()[0]).getStepInstructions().get(0).getArguments()[0];
         assertEquals("b", binding.variable());
         assertEquals("knows", binding.value());
-        binding = (Bytecode.Binding) ((Bytecode) bytecode.getStepInstructions().get(5).getArguments()[0]).getStepInstructions().get(1).getArguments()[1];
+        binding = (GremlinLang.Binding) ((GremlinLang) bytecode.getStepInstructions().get(5).getArguments()[0]).getStepInstructions().get(1).getArguments()[1];
         assertEquals("c", binding.variable());
         assertEquals(P.gt(32), binding.value());
-        binding = (Bytecode.Binding) ((Bytecode) ((Bytecode) bytecode.getStepInstructions().get(5).getArguments()[0]).getStepInstructions().get(2).getArguments()[0]).getStepInstructions().get(0).getArguments()[0];
+        binding = (GremlinLang.Binding) ((GremlinLang) ((GremlinLang) bytecode.getStepInstructions().get(5).getArguments()[0]).getStepInstructions().get(2).getArguments()[0]).getStepInstructions().get(0).getArguments()[0];
         assertEquals("d", binding.variable());
         assertEquals("name", binding.value());
-        binding = (Bytecode.Binding) bytecode.getStepInstructions().get(6).getArguments()[0];
+        binding = (GremlinLang.Binding) bytecode.getStepInstructions().get(6).getArguments()[0];
         assertEquals("a", binding.variable());
         assertEquals("created", binding.value());
     }
@@ -146,17 +146,17 @@ public class BytecodeTest {
     @Test
     public void shouldConvertStrategies() {
         final GraphTraversalSource g = EmptyGraph.instance().traversal();
-        Bytecode bytecode = g.withStrategies(ReadOnlyStrategy.instance()).getBytecode();
+        GremlinLang bytecode = g.withStrategies(ReadOnlyStrategy.instance()).getGremlinLang();
         assertEquals(ReadOnlyStrategy.instance(), bytecode.getSourceInstructions().get(0).getArguments()[0]);
-        bytecode = g.withStrategies(SubgraphStrategy.build().edges(__.hasLabel("knows")).create()).getBytecode();
-        assertEquals(SubgraphStrategy.build().edges(__.hasLabel("knows")).create().getEdgeCriterion().asAdmin().getGremlincode(),
-                ((SubgraphStrategy) bytecode.getSourceInstructions().iterator().next().getArguments()[0]).getEdgeCriterion().asAdmin().getGremlincode());
+        bytecode = g.withStrategies(SubgraphStrategy.build().edges(__.hasLabel("knows")).create()).getGremlinLang();
+        assertEquals(SubgraphStrategy.build().edges(__.hasLabel("knows")).create().getEdgeCriterion().asAdmin().getGremlinLang(),
+                ((SubgraphStrategy) bytecode.getSourceInstructions().iterator().next().getArguments()[0]).getEdgeCriterion().asAdmin().getGremlinLang());
     }
 
     @Test
     public void shouldConvertComputer() {
         final GraphTraversalSource g = EmptyGraph.instance().traversal();
-        Bytecode bytecode = g.withComputer(Computer.compute().workers(10)).getBytecode();
+        GremlinLang bytecode = g.withComputer(Computer.compute().workers(10)).getGremlinLang();
         assertEquals(VertexProgramStrategy.build().create(), bytecode.getSourceInstructions().get(0).getArguments()[0]);
         assertEquals(VertexProgramStrategy.build().workers(10).create().getConfiguration().getInt(VertexProgramStrategy.WORKERS),
                 ((VertexProgramStrategy) bytecode.getSourceInstructions().iterator().next().getArguments()[0]).getConfiguration().getInt(VertexProgramStrategy.WORKERS));
@@ -166,8 +166,8 @@ public class BytecodeTest {
     public void shouldNotHaveHashCollisionsWithBindings() {
         // ideally we should be using guava's EqualsTester to test equals/hashCode but the equals/hashCode contract allows hash collisions.
         // Yet we should avoid hash collisions in case these objects are being used in data structures that rely on hashCode
-        final Bytecode.Binding<String> first = new Bytecode.Binding<>("3", "7");
-        final Bytecode.Binding<String> second = new Bytecode.Binding<>("7", "3");
+        final GremlinLang.Binding<String> first = new GremlinLang.Binding<>("3", "7");
+        final GremlinLang.Binding<String> second = new GremlinLang.Binding<>("7", "3");
         assertNotEquals(first, second);
         assertNotEquals(first.hashCode(), second.hashCode());
     }
@@ -176,10 +176,10 @@ public class BytecodeTest {
     public void shouldNotHaveHashCollisions() {
         // ideally we should be using guava's EqualsTester to test equals/hashCode but the equals/hashCode contract allows hash collisions.
         // Yet we should avoid hash collisions in case these objects are being used in data structures that rely on hashCode
-        final Bytecode first = new Bytecode();
+        final GremlinLang first = new GremlinLang();
         first.addSource("3", "7");
         first.addStep("7", "3");
-        final Bytecode second = new Bytecode();
+        final GremlinLang second = new GremlinLang();
         second.addSource("7", "3");
         second.addStep("3", "7");
         assertNotEquals(first, second);
@@ -188,7 +188,7 @@ public class BytecodeTest {
 
     @Test
     public void shouldHandleArrays() {
-        final Bytecode b = new Bytecode();
+        final GremlinLang b = new GremlinLang();
         b.addStep(GraphTraversal.Symbols.property, "k", new Object[] { new String[] {"A", "B", "C"}});
         assertEquals(1, b.getStepInstructions().size());
         assertEquals(2, b.getStepInstructions().get(0).getArguments().length);
@@ -196,7 +196,7 @@ public class BytecodeTest {
 
     @Test
     public void shouldAvoidArgumentsNpe() {
-        final Bytecode first = new Bytecode();
+        final GremlinLang first = new GremlinLang();
         try {
             first.addSource("3", null);
             first.addSource(TraversalSource.Symbols.withoutStrategies, null);
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlincodeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlincodeTest.java
index dd2b2cb4ab..a5c56ae513 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlincodeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlincodeTest.java
@@ -27,17 +27,14 @@ import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex;
 import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;
-import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertex;
 import org.apache.tinkerpop.gremlin.util.DatetimeHelper;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.Date;
 
 import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal;
 import static org.apache.tinkerpop.gremlin.process.traversal.Scope.local;
@@ -60,7 +57,7 @@ public class GremlincodeTest {
 
     @Test
     public void doTest() {
-        final String gremlin = traversal.asAdmin().getGremlincode().getGremlin();
+        final String gremlin = traversal.asAdmin().getGremlinLang().getGremlin();
         assertEquals(expected, gremlin);
     }
 
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalTest.java
index 0843f9a5b4..81a75bb769 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/TraversalTest.java
@@ -271,8 +271,8 @@ public class TraversalTest {
         }
 
         @Override
-        public Bytecode getGremlincode() {
-            return new Bytecode();
+        public GremlinLang getGremlinLang() {
+            return new GremlinLang();
         }
 
         @Override
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalTest.java
index 90b4d48caf..fe95cc5ae3 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.dsl.graph;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Scope;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
@@ -207,12 +207,12 @@ public class GraphTraversalTest {
                 if (doTest) {
                     stepMethod.invoke(traversal, arguments);
                     // System.out.print(stepMethod.getName() + "---");
-                    final Bytecode.Instruction instruction = traversal.getGremlincode().getStepInstructions().get(traversal.getGremlincode().getStepInstructions().size() - 1);
+                    final GremlinLang.Instruction instruction = traversal.getGremlinLang().getStepInstructions().get(traversal.getGremlinLang().getStepInstructions().size() - 1);
                     // System.out.println(instruction);
                     assertEquals(stepMethod.getName(), instruction.getOperator());
                     assertEquals(list.size(), instruction.getArguments().length);
                     for (int i = 0; i < list.size(); i++) {
-                        assertEquals(list.get(i) instanceof Traversal ? ((Traversal) list.get(i)).asAdmin().getGremlincode() : list.get(i), instruction.getArguments()[i]);
+                        assertEquals(list.get(i) instanceof Traversal ? ((Traversal) list.get(i)).asAdmin().getGremlinLang() : list.get(i), instruction.getArguments()[i]);
                     }
                 }
             }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategyTest.java
index 5d2f54a888..ca84ee95e1 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategyTest.java
@@ -56,7 +56,7 @@ public class ConnectiveStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         applyConnectiveStrategy(original);
         assertEquals(repr, optimized, original);
     }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ElementIdStrategyTraverseTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ElementIdStrategyTraverseTest.java
index d5cdf402c4..2bfdcc532d 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ElementIdStrategyTraverseTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ElementIdStrategyTraverseTest.java
@@ -85,7 +85,7 @@ public class ElementIdStrategyTraverseTest {
 
     @Test
     public void shouldAlterTraversalToIncludeIdWhereNecessary() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final ElementIdStrategy strategy = ElementIdStrategy.build().create();
         strategy.apply(traversal.asAdmin());
 
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/EventStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/EventStrategyTest.java
index d625e39f0b..1d36f609bf 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/EventStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/EventStrategyTest.java
@@ -71,7 +71,7 @@ public class EventStrategyTest {
 
     @Test
     public void shouldEventOnMutatingSteps() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final MutationListener listener1 = new ConsoleMutationListener(EmptyGraph.instance());
         final EventStrategy eventStrategy = EventStrategy.build()
                 .addListener(listener1).create();
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
index c7edaf606f..957bdcae52 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
@@ -111,7 +111,7 @@ public class PartitionStrategyTest {
 
         @Test
         public void shouldIncludeAdditionalHasStepsAndAppendPartitionOnMutatingSteps() {
-            final String repr = translator.translate(traversal.getGremlincode()).getScript();
+            final String repr = translator.translate(traversal.getGremlinLang()).getScript();
             final PartitionStrategy strategy = PartitionStrategy.build()
                     .partitionKey("p").writePartition("a").readPartitions("a").create();
 
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
index f6a8f6c906..26aaa33a80 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
@@ -100,7 +100,7 @@ public class SubgraphStrategyTest {
 
         @Test
         public void shouldSubgraph() {
-            final String repr = translator.translate(traversal.getGremlincode()).getScript();
+            final String repr = translator.translate(traversal.getGremlinLang()).getScript();
             final SubgraphStrategy strategy = SubgraphStrategy.build().edges(__.has("edge")).vertices(__.has("vertex")).create();
             strategy.apply(traversal);
 
@@ -120,7 +120,7 @@ public class SubgraphStrategyTest {
 
         @Test
         public void doTest() {
-            final String repr = translator.translate(original.getGremlincode()).getScript();
+            final String repr = translator.translate(original.getGremlinLang()).getScript();
             final TraversalStrategies originalStrategies = new DefaultTraversalStrategies();
             originalStrategies.addStrategies(SubgraphStrategy.build().
                     vertices(__.and(has("name", "marko"), has("age", 29))).
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/VertexProgramStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/VertexProgramStrategyTest.java
index 0b07f6d2cb..baeb3de7a4 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/VertexProgramStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/VertexProgramStrategyTest.java
@@ -58,7 +58,7 @@ public class VertexProgramStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(new VertexProgramStrategy(Computer.compute()), ComputerVerificationStrategy.instance());
         original.asAdmin().setStrategies(strategies);
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
index f5f3268c21..f3be627781 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
@@ -55,7 +55,7 @@ public class AdjacentToIncidentStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         applyAdjacentToIncidentStrategy(original);
         assertEquals(repr, optimized, original);
     }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategyTest.java
index bb440382f2..5a4cfd11cc 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategyTest.java
@@ -186,7 +186,7 @@ public class ByModulatorOptimizationStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         applyByModulatorOptimizationStrategy(original);
         assertEquals(repr, optimized, original);
     }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
index cbcaa47639..9d5646ea36 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
@@ -158,7 +158,7 @@ public class CountStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         applyCountStrategy(original);
         assertEquals(repr, optimized, original);
     }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategyTest.java
index ece9bf7372..5cfe5b3282 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategyTest.java
@@ -56,7 +56,7 @@ public class EarlyLimitStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(EarlyLimitStrategy.instance());
         for (final TraversalStrategy strategy : this.otherStrategies) {
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategyTest.java
index a4e7c6db46..b326b81487 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategyTest.java
@@ -72,7 +72,7 @@ public class FilterRankingStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(FilterRankingStrategy.instance());
         for (final TraversalStrategy strategy : this.otherStrategies) {
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IdentityRemovalStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IdentityRemovalStrategyTest.java
index d70092b2f4..ebe05edd78 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IdentityRemovalStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IdentityRemovalStrategyTest.java
@@ -69,7 +69,7 @@ public class IdentityRemovalStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         applyIdentityRemovalStrategy(original);
         assertEquals(repr, optimized, original);
     }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
index 1aec23a043..89662f25eb 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
@@ -74,7 +74,7 @@ public class IncidentToAdjacentStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(IncidentToAdjacentStrategy.instance());
         this.original.asAdmin().setStrategies(strategies);
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategyTest.java
index fc5eacc949..23ffe5ebc0 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategyTest.java
@@ -78,7 +78,7 @@ public class InlineFilterStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(InlineFilterStrategy.instance());
 
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategyTest.java
index 5dc800aee0..97f50ab522 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/LazyBarrierStrategyTest.java
@@ -59,7 +59,7 @@ public class LazyBarrierStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(LazyBarrierStrategy.instance());
         for (final TraversalStrategy strategy : this.otherStrategies) {
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategyTest.java
index 8281eefc39..f98df222ef 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/MatchPredicateStrategyTest.java
@@ -56,7 +56,7 @@ public class MatchPredicateStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(MatchPredicateStrategy.instance());
         for (final TraversalStrategy strategy : this.otherStrategies) {
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/OrderLimitStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/OrderLimitStrategyTest.java
index 67ea6b1bd5..00dcde7a28 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/OrderLimitStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/OrderLimitStrategyTest.java
@@ -59,7 +59,7 @@ public class OrderLimitStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         traversal.asAdmin().setParent(new TraversalVertexProgramStep(EmptyTraversal.instance(), EmptyTraversal.instance())); // trick it
         applyOrderLimitStrategyStrategy(traversal);
         assertEquals(repr, limit, TraversalHelper.getFirstStepOfAssignableClass(OrderGlobalStep.class, traversal.asAdmin()).get().getLimit());
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategyTest.java
index 773d8a802d..45cdc3e14f 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategyTest.java
@@ -69,7 +69,7 @@ public class PathProcessorStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         final Traversal.Admin<?, ?> rootTraversal = new DefaultGraphTraversal<>();
         final TraversalParent parent = new TraversalVertexProgramStep(rootTraversal, this.original.asAdmin());
         rootTraversal.addStep(parent.asStep());
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategyTest.java
index e0ae9258df..43d04b2e3c 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathRetractionStrategyTest.java
@@ -92,7 +92,7 @@ public class PathRetractionStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         for (final TraversalStrategies currentStrategies : this.strategies) {
             final Traversal.Admin<?, ?> currentTraversal = this.original.clone();
             currentTraversal.setStrategies(currentStrategies);
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ProductiveByStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ProductiveByStrategyTest.java
index f582ec3113..03397fbf80 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ProductiveByStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ProductiveByStrategyTest.java
@@ -70,7 +70,7 @@ public class ProductiveByStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         applyProductiveByStrategy(original);
         assertEquals(repr, optimized, original);
     }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategyTest.java
index 0f20056716..af07df4534 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategyTest.java
@@ -61,7 +61,7 @@ public class RepeatUnrollStrategyTest {
 
     @Test
     public void doTest() {
-        final String repr = translator.translate(original.getGremlincode()).getScript();
+        final String repr = translator.translate(original.getGremlinLang()).getScript();
         final TraversalStrategies strategiesWithLazy = new DefaultTraversalStrategies();
         strategiesWithLazy.addStrategies(RepeatUnrollStrategy.instance());
         Traversal.Admin<?, ?> clonedOriginal = this.original.clone();
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ComputerVerificationStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ComputerVerificationStrategyTest.java
index ca1d5efafe..148afd0bd5 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ComputerVerificationStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ComputerVerificationStrategyTest.java
@@ -70,7 +70,7 @@ public class ComputerVerificationStrategyTest {
 
     @Test
     public void shouldBeVerifiedIllegal() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
 
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(ComputerVerificationStrategy.instance());
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/EdgeLabelVerificationStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/EdgeLabelVerificationStrategyTest.java
index c4dd5f44e2..778385d6b5 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/EdgeLabelVerificationStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/EdgeLabelVerificationStrategyTest.java
@@ -93,7 +93,7 @@ public class EdgeLabelVerificationStrategyTest {
 
     @Test
     public void shouldIgnore() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(EdgeLabelVerificationStrategy.build().create());
         final Traversal traversal = this.traversal.asAdmin().clone();
@@ -104,7 +104,7 @@ public class EdgeLabelVerificationStrategyTest {
 
     @Test
     public void shouldOnlyThrow() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(EdgeLabelVerificationStrategy.build().throwException().create());
         final Traversal traversal = this.traversal.asAdmin().clone();
@@ -124,7 +124,7 @@ public class EdgeLabelVerificationStrategyTest {
 
     @Test
     public void shouldOnlyLog() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(EdgeLabelVerificationStrategy.build().logWarning().create());
         final Traversal traversal = this.traversal.asAdmin().clone();
@@ -138,7 +138,7 @@ public class EdgeLabelVerificationStrategyTest {
 
     @Test
     public void shouldThrowAndLog() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(EdgeLabelVerificationStrategy.build().throwException().logWarning().create());
         final Traversal traversal = this.traversal.asAdmin().clone();
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/LambdaRestrictionStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/LambdaRestrictionStrategyTest.java
index 3f2f87f589..52cee035f8 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/LambdaRestrictionStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/LambdaRestrictionStrategyTest.java
@@ -87,7 +87,7 @@ public class LambdaRestrictionStrategyTest {
 
     @Test
     public void shouldBeVerifiedIllegal() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(ProfileStrategy.instance());
         strategies.addStrategies(LambdaRestrictionStrategy.instance());
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReadOnlyStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReadOnlyStrategyTest.java
index 2a5541acfa..2fccb0bf7f 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReadOnlyStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReadOnlyStrategyTest.java
@@ -61,7 +61,7 @@ public class ReadOnlyStrategyTest {
 
     @Test
     public void shouldBeVerifiedIllegal() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         try {
             ReadOnlyStrategy.instance().apply(this.traversal.asAdmin());
             fail("The strategy should have found a mutating step: " + repr);
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java
index 7063e486af..cbdffe3dd9 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategyTest.java
@@ -93,7 +93,7 @@ public class ReservedKeysVerificationStrategyTest {
 
     @Test
     public void shouldIgnore() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         strategies.addStrategies(ReservedKeysVerificationStrategy.build().create());
         final Traversal traversal = this.traversal.asAdmin().clone();
@@ -104,7 +104,7 @@ public class ReservedKeysVerificationStrategyTest {
 
     @Test
     public void shouldOnlyThrow() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         final ReservedKeysVerificationStrategy.Builder builder = ReservedKeysVerificationStrategy.build().throwException();
         if (repr.equals("__.addV().property(\"x\",\"xyz\",\"not-allowed\",\"xxx\")"))
@@ -127,7 +127,7 @@ public class ReservedKeysVerificationStrategyTest {
 
     @Test
     public void shouldOnlyLog() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         final ReservedKeysVerificationStrategy.Builder builder = ReservedKeysVerificationStrategy.build().logWarning();
         if (repr.equals("__.addV().property(\"x\",\"xyz\",\"not-allowed\",\"xxx\")"))
@@ -144,7 +144,7 @@ public class ReservedKeysVerificationStrategyTest {
 
     @Test
     public void shouldThrowAndLog() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final TraversalStrategies strategies = new DefaultTraversalStrategies();
         final ReservedKeysVerificationStrategy.Builder builder = ReservedKeysVerificationStrategy.build().
                 throwException().logWarning();
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/StandardVerificationStrategyTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/StandardVerificationStrategyTest.java
index f3c98cc324..2935d76052 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/StandardVerificationStrategyTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/StandardVerificationStrategyTest.java
@@ -71,7 +71,7 @@ public class StandardVerificationStrategyTest {
 
     @Test
     public void shouldBeVerified() {
-        final String repr = translator.translate(traversal.getGremlincode()).getScript();
+        final String repr = translator.translate(traversal.getGremlinLang()).getScript();
         final Traversal copy = copyAndConfigureTraversal(traversal);
 
         if (legalTraversal) {
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/AnonymizingTypeTranslatorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/AnonymizingTypeTranslatorTest.java
index 3bf7fdbb5d..cd5ade506d 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/AnonymizingTypeTranslatorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/AnonymizingTypeTranslatorTest.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.translator;
 
 import org.apache.tinkerpop.gremlin.language.grammar.GremlinQueryParser;
 import org.apache.tinkerpop.gremlin.language.grammar.NoOpTerminalVisitor;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@ -44,7 +44,7 @@ public class AnonymizingTypeTranslatorTest {
 
     private void testAnonymize(final String query, final String expected) {
         try {
-            final Bytecode bc = (Bytecode) GremlinQueryParser.parse(query, new NoOpTerminalVisitor());
+            final GremlinLang bc = (GremlinLang) GremlinQueryParser.parse(query, new NoOpTerminalVisitor());
             final Translator.ScriptTranslator translator = GroovyTranslator.of("g", new AnonymizingTypeTranslator());
             final String converted = translator.translate(bc).getScript();
             Assert.assertEquals(expected, converted);
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 cb16fc4cb7..c2c05c5d72 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
@@ -70,7 +70,7 @@ public class DotNetTranslatorTest {
                 translator.translate(g.withStrategies(ReadOnlyStrategy.instance(),
                         SubgraphStrategy.build().checkAdjacentVertices(false).vertices(hasLabel("person")).create(),
                         new SeedStrategy(999999)).
-                        V().has("name").asAdmin().getGremlincode()).getScript());
+                        V().has("name").asAdmin().getGremlinLang()).getScript());
     }
 
     @Test
@@ -78,49 +78,49 @@ public class DotNetTranslatorTest {
         final String script = translator.translate(g.V().id().is(new LinkedHashMap<Object,Object>() {{
             put(3, "32");
             put(Arrays.asList(1, 2, 3.1d), 4);
-        }}).asAdmin().getGremlincode()).getScript();
+        }}).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Id().Is(new Dictionary<object,object> {{3, \"32\"}, {new List<object> {1, 2, 3.1}, 4}})", script);
     }
 
     @Test
     public void shouldTranslateValues() {
-        final String script = translator.translate(g.V().values("name").asAdmin().getGremlincode()).getScript();
+        final String script = translator.translate(g.V().values("name").asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Values<object>(\"name\")", script);
     }
 
     @Test
     public void shouldTranslateValue() {
-        final String script = translator.translate(g.V().properties().order().by(T.value, asc).value().asAdmin().getGremlincode()).getScript();
+        final String script = translator.translate(g.V().properties().order().by(T.value, asc).value().asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Properties<object>().Order().By(T.Value,Order.Asc).Value<object>()", script);
     }
 
     @Test
     public void shouldTranslateInject() {
-        String script = translator.translate(g.inject(10,20,null,20,10,10).asAdmin().getGremlincode()).getScript();
+        String script = translator.translate(g.inject(10,20,null,20,10,10).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.Inject<object>(10,20,null,20,10,10)", script);
-        script = translator.translate(g.inject().asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.inject().asAdmin().getGremlinLang()).getScript();
         assertEquals("g.Inject<object>()", script);
-        script = translator.translate(g.inject((Object) null).asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.inject((Object) null).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.Inject<object>(null)", script);
-        script = translator.translate(g.inject(null, null).asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.inject(null, null).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.Inject<object>(null,null)", script);
-        script = translator.translate(g.V().values("age").inject().asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.V().values("age").inject().asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Values<object>(\"age\").Inject()", script);
-        script = translator.translate(g.V().values("age").inject(null).asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.V().values("age").inject(null).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Values<object>(\"age\").Inject(null)", script);
-        script = translator.translate(g.V().values("age").inject(null, null).asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.V().values("age").inject(null, null).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Values<object>(\"age\").Inject(null,null)", script);
     }
 
     @Test
     public void shouldTranslateGroup() {
-        final String script = translator.translate(g.V().group("x").group().by("name").asAdmin().getGremlincode()).getScript();
+        final String script = translator.translate(g.V().group("x").group().by("name").asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Group(\"x\").Group<object,object>().By(\"name\")", script);
     }
 
     @Test
     public void shouldTranslateGroupCount() {
-        final String script = translator.translate(g.V().groupCount("x").groupCount().by("name").asAdmin().getGremlincode()).getScript();
+        final String script = translator.translate(g.V().groupCount("x").groupCount().by("name").asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().GroupCount(\"x\").GroupCount<object>().By(\"name\")", script);
     }
 
@@ -182,15 +182,15 @@ public class DotNetTranslatorTest {
 
     @Test
     public void shouldTranslateHasLabelNull() {
-        String script = translator.translate(g.V().hasLabel(null).asAdmin().getGremlincode()).getScript();
+        String script = translator.translate(g.V().hasLabel(null).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().HasLabel((string) null)", script);
-        script = translator.translate(g.V().hasLabel(null, null).asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.V().hasLabel(null, null).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().HasLabel(null,null)", script);
-        script = translator.translate(g.V().hasLabel(null, "person").asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.V().hasLabel(null, "person").asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().HasLabel(null,\"person\")", script);
-        script = translator.translate(g.V().hasLabel(null, "person", null).asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.V().hasLabel(null, "person", null).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().HasLabel(null,\"person\",null)", script);
-        script = translator.translate(g.V().has(T.label, (Object) null).asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.V().has(T.label, (Object) null).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Has(T.Label,(object) null)", script);
     }
 
@@ -207,15 +207,15 @@ public class DotNetTranslatorTest {
 
     @Test
     public void shouldTranslateHasNull() {
-        String script = translator.translate(g.V().has("k", (Object) null).asAdmin().getGremlincode()).getScript();
+        String script = translator.translate(g.V().has("k", (Object) null).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Has(\"k\",(object) null)", script);
-        script = translator.translate(g.V().has("l", "k", (Object) null).asAdmin().getGremlincode()).getScript();
+        script = translator.translate(g.V().has("l", "k", (Object) null).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Has(\"l\",\"k\",(object) null)", script);
     }
 
     @Test
     public void shouldTranslateMergeVNull() {
-        String script = translator.translate(g.mergeV((Map) null).option(Merge.onCreate, (Map) null).mergeV(__.identity()).asAdmin().getGremlincode()).getScript();
+        String script = translator.translate(g.mergeV((Map) null).option(Merge.onCreate, (Map) null).mergeV(__.identity()).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.MergeV((IDictionary<object,object>) null).Option(Merge.OnCreate, (IDictionary<object,object>) null).MergeV((ITraversal) __.Identity())", script);
     }
 
@@ -226,7 +226,7 @@ public class DotNetTranslatorTest {
                 .property("name", "Foo\u0020Bar")
                 .property("age", 25)
                 .property("special", "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?")
-                .asAdmin().getGremlincode()).getScript();
+                .asAdmin().getGremlinLang()).getScript();
 
         assertEquals("g.AddV(\"customer\")" +
                         ".Property(\"customer_id\",501)" +
@@ -241,7 +241,7 @@ public class DotNetTranslatorTest {
         final Object id1 = "customer:10:foo\u0020bar\u0020\u0024100#90"; // customer:10:foo bar $100#90
         final Vertex vertex1 = DetachedVertex.build().setLabel("customer").setId(id1)
                 .create();
-        final String script1 = translator.translate(g.inject(vertex1).asAdmin().getGremlincode()).getScript();
+        final String script1 = translator.translate(g.inject(vertex1).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.Inject(new Vertex(" +
                         "\"customer:10:foo bar $100#90\", " +
                         "\"customer\"))",
@@ -250,7 +250,7 @@ public class DotNetTranslatorTest {
         final Object id2 = "user:20:foo\\u0020bar\\u005c\\u0022mr\\u005c\\u0022\\u00241000#50"; // user:20:foo\u0020bar\u005c\u0022mr\u005c\u0022\u00241000#50
         final Vertex vertex2 = DetachedVertex.build().setLabel("user").setId(id2)
                 .create();
-        final String script2 = translator.translate(g.inject(vertex2).asAdmin().getGremlincode()).getScript();
+        final String script2 = translator.translate(g.inject(vertex2).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.Inject(new Vertex(" +
                         "\"user:20:foo\\\\u0020bar\\\\u005c\\\\u0022mr\\\\u005c\\\\u0022\\\\u00241000#50\", " +
                         "\"user\"))",
@@ -261,7 +261,7 @@ public class DotNetTranslatorTest {
                 .setOutV((DetachedVertex) vertex1)
                 .setInV((DetachedVertex) vertex2)
                 .create();
-        final String script3 = translator.translate(g.inject(edge).asAdmin().getGremlincode()).getScript();
+        final String script3 = translator.translate(g.inject(edge).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.Inject(" +
                         "new Edge(\"knows:30:foo bar $100:\\\\u0020\\\\u0024500#70\", " +
                         "new Vertex(\"customer:10:foo bar $100#90\", \"customer\"), " +
@@ -271,7 +271,7 @@ public class DotNetTranslatorTest {
 
         final String script4 = translator.translate(
                 g.addE("knows").from(vertex1).to(vertex2).property("when", "2018/09/21")
-                        .asAdmin().getGremlincode()).getScript();
+                        .asAdmin().getGremlinLang()).getScript();
         assertEquals("g.AddE(\"knows\")" +
                         ".From(new Vertex(\"customer:10:foo bar $100#90\", \"customer\"))" +
                         ".To(new Vertex(\"user:20:foo\\\\u0020bar\\\\u005c\\\\u0022mr\\\\u005c\\\\u0022\\\\u00241000#50\", \"user\"))" +
@@ -282,59 +282,59 @@ public class DotNetTranslatorTest {
     @Test
     public void shouldTranslateStringFunctionWithAndWithoutScopes(){
         assertEquals("g.Inject(1).AsString()",
-                translator.translate(g.inject(1).asString().asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject(1).asString().asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(1).AsString<object>(Scope.Local)",
-                translator.translate(g.inject(1).asString(Scope.local).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject(1).asString(Scope.local).asAdmin().getGremlinLang()).getScript());
 
         assertEquals("g.Inject(\"hello\").Length()",
-                translator.translate(g.inject("hello").length().asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").length().asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(\"hello\").Length<object>(Scope.Local)",
-                translator.translate(g.inject("hello").length(Scope.local).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").length(Scope.local).asAdmin().getGremlinLang()).getScript());
 
         assertEquals("g.Inject(\"hello\").LTrim()",
-                translator.translate(g.inject("hello").lTrim().asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").lTrim().asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(\"hello\").LTrim<object>(Scope.Local)",
-                translator.translate(g.inject("hello").lTrim(Scope.local).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").lTrim(Scope.local).asAdmin().getGremlinLang()).getScript());
 
         assertEquals("g.Inject(\"hello\").RTrim()",
-                translator.translate(g.inject("hello").rTrim().asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").rTrim().asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(\"hello\").RTrim<object>(Scope.Local)",
-                translator.translate(g.inject("hello").rTrim(Scope.local).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").rTrim(Scope.local).asAdmin().getGremlinLang()).getScript());
 
         assertEquals("g.Inject(\"hello\").ToUpper()",
-                translator.translate(g.inject("hello").toUpper().asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").toUpper().asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(\"hello\").ToUpper<object>(Scope.Local)",
-                translator.translate(g.inject("hello").toUpper(Scope.local).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").toUpper(Scope.local).asAdmin().getGremlinLang()).getScript());
 
         assertEquals("g.Inject(\"hello\").ToLower()",
-                translator.translate(g.inject("hello").toLower().asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").toLower().asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(\"hello\").ToLower<object>(Scope.Local)",
-                translator.translate(g.inject("hello").toLower(Scope.local).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").toLower(Scope.local).asAdmin().getGremlinLang()).getScript());
 
         assertEquals("g.Inject(\"hello\").Trim()",
-                translator.translate(g.inject("hello").trim().asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").trim().asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(\"hello\").Trim<object>(Scope.Local)",
-                translator.translate(g.inject("hello").trim(Scope.local).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").trim(Scope.local).asAdmin().getGremlinLang()).getScript());
 
         assertEquals("g.Inject(\"hello\").Replace(\"o\",\"a\")",
-                translator.translate(g.inject("hello").replace("o", "a").asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").replace("o", "a").asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(\"hello\").Replace<object>(Scope.Local,\"o\",\"a\")",
-                translator.translate(g.inject("hello").replace(Scope.local, "o", "a").asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").replace(Scope.local, "o", "a").asAdmin().getGremlinLang()).getScript());
 
         assertEquals("g.Inject(\"hello\").Split(\"o\")",
-                translator.translate(g.inject("hello").split("o").asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").split("o").asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(\"hello\").Split<object>(Scope.Local,\"o\")",
-                translator.translate(g.inject("hello").split(Scope.local, "o").asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").split(Scope.local, "o").asAdmin().getGremlinLang()).getScript());
 
         assertEquals("g.Inject(\"hello\").Substring(1)",
-                translator.translate(g.inject("hello").substring(1).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").substring(1).asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(\"hello\").Substring<object>(Scope.Local,1)",
-                translator.translate(g.inject("hello").substring(Scope.local, 1).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").substring(Scope.local, 1).asAdmin().getGremlinLang()).getScript());
 
         assertEquals("g.Inject(\"hello\").Substring(1,2)",
-                translator.translate(g.inject("hello").substring(1, 2).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").substring(1, 2).asAdmin().getGremlinLang()).getScript());
         assertEquals("g.Inject(\"hello\").Substring<object>(Scope.Local,1,2)",
-                translator.translate(g.inject("hello").substring(Scope.local, 1, 2).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject("hello").substring(Scope.local, 1, 2).asAdmin().getGremlinLang()).getScript());
     }
 
     @Test
@@ -346,7 +346,7 @@ public class DotNetTranslatorTest {
     }
 
     private void assertTranslation(final String expectedTranslation, final Object... objs) {
-        final String script = translator.translate(g.inject(objs).asAdmin().getGremlincode()).getScript();
+        final String script = translator.translate(g.inject(objs).asAdmin().getGremlinLang()).getScript();
         assertEquals(String.format("g.Inject(%s)", expectedTranslation), script);
     }
 }
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 f45a046fb3..c731dda05f 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
@@ -20,7 +20,7 @@
 package org.apache.tinkerpop.gremlin.process.traversal.translator;
 
 import org.apache.commons.text.StringEscapeUtils;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.GraphOp;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
@@ -54,27 +54,27 @@ public class GolangTranslatorTest {
     @Test
     public void shouldTranslateOption() {
         final String gremlinAsGo = translator.translate(
-                g.V().has("person", "name", "marko").asAdmin().getGremlincode()).getScript();
+                g.V().has("person", "name", "marko").asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Has(\"person\", \"name\", \"marko\")", gremlinAsGo);
     }
 
     @Test
     public void shouldTranslateCardinality() {
         final String gremlinAsGo = translator.translate(
-                g.addV("person").property(VertexProperty.Cardinality.list, "name", "marko").asAdmin().getGremlincode()).getScript();
+                g.addV("person").property(VertexProperty.Cardinality.list, "name", "marko").asAdmin().getGremlinLang()).getScript();
         assertEquals("g.AddV(\"person\").Property(gremlingo.Cardinality.List, \"name\", \"marko\")", gremlinAsGo);
     }
 
     @Test
     public void shouldTranslateCardinalityValue() {
         assertEquals("g.Inject(gremlingo.CardinalityValue.Set(\"test\"))", translator.translate(
-                g.inject(VertexProperty.Cardinality.set("test")).asAdmin().getGremlincode()).getScript());
+                g.inject(VertexProperty.Cardinality.set("test")).asAdmin().getGremlinLang()).getScript());
     }
 
     @Test
     public void shouldTranslateMultilineStrings() {
         final String gremlinAsGo = translator.translate(
-                g.addV().property("text", "a" + System.lineSeparator() + "\"and\"" + System.lineSeparator() + "b").asAdmin().getGremlincode()).getScript();
+                g.addV().property("text", "a" + System.lineSeparator() + "\"and\"" + System.lineSeparator() + "b").asAdmin().getGremlinLang()).getScript();
         final String escapedSeparator = StringEscapeUtils.escapeJava(System.lineSeparator());
         final String expected = "g.AddV().Property(\"text\", \"a" + escapedSeparator + StringEscapeUtils.escapeJava("\"and\"") + escapedSeparator + "b\")";
         assertEquals(expected, gremlinAsGo);
@@ -84,7 +84,7 @@ public class GolangTranslatorTest {
     public void shouldTranslateChildTraversals() {
         final String gremlinAsGo = translator.translate(
                 g.V().has("person", "name", "marko").
-                        where(outE()).asAdmin().getGremlincode()).getScript();
+                        where(outE()).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Has(\"person\", \"name\", \"marko\").Where(gremlingo.T__.OutE())", gremlinAsGo);
     }
 
@@ -92,7 +92,7 @@ public class GolangTranslatorTest {
     public void shouldTranslateGoNamedSteps() {
         final String gremlinAsGo = translator.translate(
                 g.V().has("person", "name", "marko").
-                        where(outE().count().is(2).and(__.not(inE().count().is(3)))).asAdmin().getGremlincode()).getScript();
+                        where(outE().count().is(2).and(__.not(inE().count().is(3)))).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().Has(\"person\", \"name\", \"marko\").Where(gremlingo.T__.OutE().Count().Is(2).And(gremlingo.T__.Not(gremlingo.T__.InE().Count().Is(3))))", gremlinAsGo);
     }
 
@@ -102,12 +102,12 @@ public class GolangTranslatorTest {
                 translator.translate(g.withStrategies(ReadOnlyStrategy.instance(),
                                 SubgraphStrategy.build().checkAdjacentVertices(false).vertices(hasLabel("person")).create(),
                                 new SeedStrategy(999999)).
-                        V().has("name").asAdmin().getGremlincode()).getScript());
+                        V().has("name").asAdmin().getGremlinLang()).getScript());
     }
 
     @Test
     public void shouldTranslateLambdas() {
-        final Bytecode bytecode = g.withSideEffect("lengthSum", 0).withSack(1)
+        final GremlinLang bytecode = g.withSideEffect("lengthSum", 0).withSack(1)
                 .V()
                 .filter(Lambda.predicate("x -> x.get().label() == 'person'", "gremlin-groovy"))
                 .flatMap(Lambda.function("it.get().vertices(Direction.OUT)", "gremlin-groovy"))
@@ -115,7 +115,7 @@ public class GolangTranslatorTest {
                 .sideEffect(Lambda.consumer("x -> x.sideEffects(\"lengthSum\", x.sideEffects('lengthSum') + x.get())    ", "gremlin-groovy"))
                 .order().by(Lambda.comparator("a,b -> a == b ? 0 : (a > b) ? 1 : -1)", "gremlin-groovy"))
                 .sack(Lambda.biFunction("a,b -> a + b", "gremlin-groovy"))
-                .asAdmin().getGremlincode();
+                .asAdmin().getGremlinLang();
         assertEquals("g.WithSideEffect(\"lengthSum\", 0).WithSack(1).V()." +
                         "Filter(&gremlingo.Lambda{Script:\"x -> x.get().label() == 'person'\", Language:\"\"})." +
                         "FlatMap(&gremlingo.Lambda{Script:\"it.get().vertices(Direction.OUT)\", Language:\"\"})." +
@@ -129,7 +129,7 @@ public class GolangTranslatorTest {
     @Test
     public void shouldTranslateArrayOfArray() {
         assertEquals("g.Inject([]interface{}{[]interface{}{1, 2}, []interface{}{3, 4}})",
-                translator.translate(g.inject(Arrays.asList(Arrays.asList(1,2),Arrays.asList(3,4))).asAdmin().getGremlincode()).getScript());
+                translator.translate(g.inject(Arrays.asList(Arrays.asList(1,2),Arrays.asList(3,4))).asAdmin().getGremlinLang()).getScript());
     }
 
     @Test
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslatorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslatorTest.java
index 4dd27fa2dd..9817ef9900 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslatorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/GroovyTranslatorTest.java
@@ -105,7 +105,7 @@ public class GroovyTranslatorTest {
                 .sack(Lambda.biFunction("{ a,b -> a + b }"))
                 .asAdmin();
 
-        final String script = translator.translate(t.getGremlincode()).getScript();
+        final String script = translator.translate(t.getGremlinLang()).getScript();
         assertEquals(   "g.withSideEffect(\"lengthSum\",(int) 0).withSack((int) 1)" +
                         ".V()" +
                         ".filter({it.get().label().equals('person')})" +
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 7d249bed5e..0efb84bf28 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
@@ -64,7 +64,7 @@ public class JavascriptTranslatorTest {
                 translator.translate(g.withStrategies(ReadOnlyStrategy.instance(),
                         SubgraphStrategy.build().checkAdjacentVertices(false).vertices(hasLabel("person")).create(),
                         new SeedStrategy(999999)).
-                        V().has("name").asAdmin().getGremlincode()).getScript());
+                        V().has("name").asAdmin().getGremlinLang()).getScript());
     }
 
     @Test
@@ -72,7 +72,7 @@ public class JavascriptTranslatorTest {
         final String script = translator.translate(g.V().id().is(new LinkedHashMap<Object,Object>() {{
             put(3, "32");
             put(Arrays.asList(1, 2, 3.1d), 4);
-        }}).asAdmin().getGremlincode()).getScript();
+        }}).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().id().is(new Map([[3,\"32\"],[[1, 2, 3.1],4]]))", script);
     }
 
@@ -134,13 +134,13 @@ public class JavascriptTranslatorTest {
 
     @Test
     public void shouldHaveNull() {
-        assertEquals("g.inject(null,null)", translator.translate(g.inject(null, null).asAdmin().getGremlincode()).getScript());
-        assertEquals("g.V()", translator.translate(g.V().asAdmin().getGremlincode()).getScript());
-        assertEquals("g.V(null)", translator.translate(g.V(null).asAdmin().getGremlincode()).getScript());
-        assertEquals("g.V(null,null)", translator.translate(g.V(null, null).asAdmin().getGremlincode()).getScript());
-        assertEquals("g.E()", translator.translate(g.E().asAdmin().getGremlincode()).getScript());
-        assertEquals("g.E(null)", translator.translate(g.E(null).asAdmin().getGremlincode()).getScript());
-        assertEquals("g.E(null,null)", translator.translate(g.E(null, null).asAdmin().getGremlincode()).getScript());
+        assertEquals("g.inject(null,null)", translator.translate(g.inject(null, null).asAdmin().getGremlinLang()).getScript());
+        assertEquals("g.V()", translator.translate(g.V().asAdmin().getGremlinLang()).getScript());
+        assertEquals("g.V(null)", translator.translate(g.V(null).asAdmin().getGremlinLang()).getScript());
+        assertEquals("g.V(null,null)", translator.translate(g.V(null, null).asAdmin().getGremlinLang()).getScript());
+        assertEquals("g.E()", translator.translate(g.E().asAdmin().getGremlinLang()).getScript());
+        assertEquals("g.E(null)", translator.translate(g.E(null).asAdmin().getGremlinLang()).getScript());
+        assertEquals("g.E(null,null)", translator.translate(g.E(null, null).asAdmin().getGremlinLang()).getScript());
     }
 
     @Test
@@ -150,7 +150,7 @@ public class JavascriptTranslatorTest {
                 .property("name", "Foo\u0020Bar")
                 .property("age", 25)
                 .property("special", "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?")
-                .asAdmin().getGremlincode()).getScript();
+                .asAdmin().getGremlinLang()).getScript();
 
         assertEquals("g.addV(\"customer\")" +
                         ".property(\"customer_id\",501)" +
@@ -165,7 +165,7 @@ public class JavascriptTranslatorTest {
         final Object id1 = "customer:10:foo\u0020bar\u0020\u0024100#90"; // customer:10:foo bar $100#90
         final Vertex vertex1 = DetachedVertex.build().setLabel("customer").setId(id1)
                 .create();
-        final String script1 = translator.translate(g.inject(vertex1).asAdmin().getGremlincode()).getScript();
+        final String script1 = translator.translate(g.inject(vertex1).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.inject(new Vertex(" +
                         "\"customer:10:foo bar \\$100#90\"," +
                         "\"customer\", null))",
@@ -174,7 +174,7 @@ public class JavascriptTranslatorTest {
         final Object id2 = "user:20:foo\\u0020bar\\u005c\\u0022mr\\u005c\\u0022\\u00241000#50"; // user:20:foo\u0020bar\u005c\u0022mr\u005c\u0022\u00241000#50
         final Vertex vertex2 = DetachedVertex.build().setLabel("user").setId(id2)
                 .create();
-        final String script2 = translator.translate(g.inject(vertex2).asAdmin().getGremlincode()).getScript();
+        final String script2 = translator.translate(g.inject(vertex2).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.inject(new Vertex(" +
                         "\"user:20:foo\\\\u0020bar\\\\u005c\\\\u0022mr\\\\u005c\\\\u0022\\\\u00241000#50\"," +
                         "\"user\", null))",
@@ -185,7 +185,7 @@ public class JavascriptTranslatorTest {
                 .setOutV((DetachedVertex) vertex1)
                 .setInV((DetachedVertex) vertex2)
                 .create();
-        final String script3 = translator.translate(g.inject(edge).asAdmin().getGremlincode()).getScript();
+        final String script3 = translator.translate(g.inject(edge).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.inject(" +
                         "new Edge(\"knows:30:foo bar \\$100:\\\\u0020\\\\u0024500#70\", " +
                         "new Vertex(\"customer:10:foo bar \\$100#90\",\"customer\", null)," +
@@ -196,7 +196,7 @@ public class JavascriptTranslatorTest {
 
         final String script4 = translator.translate(
                 g.addE("knows").from(vertex1).to(vertex2).property("when", "2018/09/21")
-                        .asAdmin().getGremlincode()).getScript();
+                        .asAdmin().getGremlinLang()).getScript();
         assertEquals("g.addE(\"knows\")" +
                         ".from_(new Vertex(\"customer:10:foo bar \\$100#90\",\"customer\", null))" +
                         ".to(new Vertex(\"user:20:foo\\\\u0020bar\\\\u005c\\\\u0022mr\\\\u005c\\\\u0022\\\\u00241000#50\",\"user\", null))" +
@@ -213,7 +213,7 @@ public class JavascriptTranslatorTest {
     }
 
     private void assertTranslation(final String expectedTranslation, final Object... objs) {
-        final String script = translator.translate(g.inject(objs).asAdmin().getGremlincode()).getScript();
+        final String script = translator.translate(g.inject(objs).asAdmin().getGremlinLang()).getScript();
         assertEquals(String.format("g.inject(%s)", expectedTranslation), script);
     }
 }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/ParameterizedGroovyTranslatorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/ParameterizedGroovyTranslatorTest.java
index 1b805e81c3..50c8012aeb 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/ParameterizedGroovyTranslatorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/translator/ParameterizedGroovyTranslatorTest.java
@@ -74,7 +74,7 @@ public class ParameterizedGroovyTranslatorTest {
         assertEquals("g.withStrategies(ReadOnlyStrategy,new SubgraphStrategy(checkAdjacentVertices: _args_0, vertices: __.hasLabel(_args_1))).V().has(_args_2)",
                 translator.translate(g.withStrategies(ReadOnlyStrategy.instance(),
                         SubgraphStrategy.build().checkAdjacentVertices(false).vertices(hasLabel("person")).create()).
-                        V().has("name").asAdmin().getGremlincode()).getScript());
+                        V().has("name").asAdmin().getGremlinLang()).getScript());
     }
 
     @Test
@@ -88,7 +88,7 @@ public class ParameterizedGroovyTranslatorTest {
                 .order().by(Lambda.comparator("a,b -> a <=> b"))
                 .sack(Lambda.biFunction("{ a,b -> a + b }"))
                 .asAdmin();
-        final Script script = translator.translate(t.getGremlincode());
+        final Script script = translator.translate(t.getGremlinLang());
         final Bindings bindings = new SimpleBindings();
         script.getParameters().ifPresent(bindings::putAll);
         assertEquals(9, bindings.size());
@@ -120,7 +120,7 @@ public class ParameterizedGroovyTranslatorTest {
             add(3);
             add(4);
             add(5);
-        }})).asAdmin().getGremlincode());
+        }})).asAdmin().getGremlinLang());
         final Bindings bindings = new SimpleBindings();
         script.getParameters().ifPresent(bindings::putAll);
         assertEquals(5, bindings.size());
@@ -139,7 +139,7 @@ public class ParameterizedGroovyTranslatorTest {
             add(Arrays.asList(1, 2, 3.1d));
             add(3);
             add("3");
-        }}).asAdmin().getGremlincode());
+        }}).asAdmin().getGremlinLang());
         final Bindings bindings = new SimpleBindings();
         script.getParameters().ifPresent(bindings::putAll);
         assertEquals(5, bindings.size());
@@ -157,7 +157,7 @@ public class ParameterizedGroovyTranslatorTest {
         final Script script = translator.translate(g.V().id().is(new LinkedHashMap<Object,Object>() {{
             put(3, "32");
             put(Arrays.asList(1, 2, 3.1d), 4);
-        }}).asAdmin().getGremlincode());
+        }}).asAdmin().getGremlinLang());
         final Bindings bindings = new SimpleBindings();
         script.getParameters().ifPresent(bindings::putAll);
         assertEquals(6, bindings.size());
@@ -173,7 +173,7 @@ public class ParameterizedGroovyTranslatorTest {
     @Test
     public void shouldHandleEmptyMaps() {
         final Function identity = new Lambda.OneArgLambda("it.get()", "gremlin-groovy");
-        final Script script = translator.translate(g.inject(Collections.emptyMap()).map(identity).asAdmin().getGremlincode());
+        final Script script = translator.translate(g.inject(Collections.emptyMap()).map(identity).asAdmin().getGremlinLang());
         final Bindings bindings = new SimpleBindings();
         script.getParameters().ifPresent(bindings::putAll);
         assertEquals(1, bindings.size());
@@ -186,7 +186,7 @@ public class ParameterizedGroovyTranslatorTest {
         final ParameterizedSillyClass notSillyEnough = ParameterizedSillyClass.from("not silly enough", 100);
 
         // without type translation we get uglinesss
-        final Script parameterizedScriptBad = translator.translate(g.inject(notSillyEnough).asAdmin().getGremlincode());
+        final Script parameterizedScriptBad = translator.translate(g.inject(notSillyEnough).asAdmin().getGremlinLang());
         final Bindings bindings = new SimpleBindings();
         parameterizedScriptBad.getParameters().ifPresent(bindings::putAll);
         assertEquals(String.format("g.inject(%s)", "_args_0"), parameterizedScriptBad.getScript());
@@ -196,7 +196,7 @@ public class ParameterizedGroovyTranslatorTest {
 
         // with type translation we get valid gremlin
         final Script parameterizedScriptGood = GroovyTranslator.of("g", new ParameterizedSillyClassTranslatorCustomizer().createTypeTranslator()).
-                translate(g.inject(notSillyEnough).asAdmin().getGremlincode());
+                translate(g.inject(notSillyEnough).asAdmin().getGremlinLang());
         parameterizedScriptGood.getParameters().ifPresent(bindings::putAll);
         assertEquals(2, bindings.size());
         assertEquals(notSillyEnough.getX(), bindings.get("_args_0"));
@@ -217,7 +217,7 @@ public class ParameterizedGroovyTranslatorTest {
                 .property("name", "Foo\u0020Bar")
                 .property("age", 25)
                 .property("special", "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?")
-                .asAdmin().getGremlincode());
+                .asAdmin().getGremlinLang());
         final Bindings bindings = new SimpleBindings();
         script.getParameters().ifPresent(bindings::putAll);
         assertEquals(9, bindings.size());
@@ -238,7 +238,7 @@ public class ParameterizedGroovyTranslatorTest {
         final Object id1 = "customer:10:foo\u0020bar\u0020\u0024100#90"; // customer:10:foo bar $100#90
         final Vertex vertex1 = DetachedVertex.build().setLabel("customer").setId(id1)
                 .create();
-        final Script script1 = translator.translate(g.inject(vertex1).asAdmin().getGremlincode());
+        final Script script1 = translator.translate(g.inject(vertex1).asAdmin().getGremlinLang());
         final Bindings bindings = new SimpleBindings();
         script1.getParameters().ifPresent(bindings::putAll);
         assertEquals(2, bindings.size());
@@ -250,7 +250,7 @@ public class ParameterizedGroovyTranslatorTest {
         final Object id2 = "user:20:foo\\u0020bar\\u005c\\u0022mr\\u005c\\u0022\\u00241000#50"; // user:20:foo\u0020bar\u005c\u0022mr\u005c\u0022\u00241000#50
         final Vertex vertex2 = DetachedVertex.build().setLabel("user").setId(id2)
                 .create();
-        final Script script2 = translator.translate(g.inject(vertex2).asAdmin().getGremlincode());
+        final Script script2 = translator.translate(g.inject(vertex2).asAdmin().getGremlinLang());
         script2.getParameters().ifPresent(bindings::putAll);
         assertEquals(2, bindings.size());
         assertEquals(id2, bindings.get("_args_0"));
@@ -263,7 +263,7 @@ public class ParameterizedGroovyTranslatorTest {
                 .setOutV((DetachedVertex) vertex1)
                 .setInV((DetachedVertex) vertex2)
                 .create();
-        final Script script3 = translator.translate(g.inject(edge).asAdmin().getGremlincode());
+        final Script script3 = translator.translate(g.inject(edge).asAdmin().getGremlinLang());
         script3.getParameters().ifPresent(bindings::putAll);
         assertEquals(6, bindings.size());
         assertEquals(id3, bindings.get("_args_0"));
@@ -277,7 +277,7 @@ public class ParameterizedGroovyTranslatorTest {
 
         final Script script4 = translator.translate(
                 g.addE("knows").from(vertex1).to(vertex2).property("when", "2018/09/21")
-                        .asAdmin().getGremlincode());
+                        .asAdmin().getGremlinLang());
         script4.getParameters().ifPresent(bindings::putAll);
         assertEquals(7, bindings.size());
         assertEquals("knows", bindings.get("_args_0"));
@@ -290,7 +290,7 @@ public class ParameterizedGroovyTranslatorTest {
         assertEquals("g.addE(_args_0).from(new ReferenceVertex(_args_1,_args_2)).to(new ReferenceVertex(_args_3,_args_4)).property(_args_5,_args_6)", script4.getScript());
         bindings.clear();
 
-        final Script script5 = translator.translate(g.V().has("age").asAdmin().getGremlincode());
+        final Script script5 = translator.translate(g.V().has("age").asAdmin().getGremlinLang());
         script5.getParameters().ifPresent(bindings::putAll);
         assertEquals(1, bindings.size());
         assertEquals("age", bindings.get("_args_0"));
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 63cb3ede20..6acd0ed584 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
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.translator;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
 import org.apache.tinkerpop.gremlin.process.traversal.GraphOp;
 import org.apache.tinkerpop.gremlin.process.traversal.TextP;
@@ -56,14 +56,14 @@ public class PythonTranslatorTest {
     @Test
     public void shouldTranslateOption() {
         final String gremlinAsPython = translator.translate(
-                g.V().has("person", "name", "marko").asAdmin().getGremlincode()).getScript();
+                g.V().has("person", "name", "marko").asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().has('person','name','marko')", gremlinAsPython);
     }
 
     @Test
     public void shouldTranslateCardinality() {
         final String gremlinAsPython = translator.translate(
-                g.addV("person").property(VertexProperty.Cardinality.list, "name", "marko").asAdmin().getGremlincode()).getScript();
+                g.addV("person").property(VertexProperty.Cardinality.list, "name", "marko").asAdmin().getGremlinLang()).getScript();
         assertEquals("g.addV('person').property(Cardinality.list_,'name','marko')", gremlinAsPython);
     }
 
@@ -72,14 +72,14 @@ public class PythonTranslatorTest {
         final Map<Object, Object> m = new HashMap<>();
         m.put("name", VertexProperty.Cardinality.set("marko"));
         final String gremlinAsPython = translator.translate(
-                g.mergeV(new HashMap<>()).option(Merge.onMatch, m).asAdmin().getGremlincode()).getScript();
+                g.mergeV(new HashMap<>()).option(Merge.onMatch, m).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.merge_v({}).option(Merge.on_match,{'name':CardinalityValue.set_('marko')})", gremlinAsPython);
     }
 
     @Test
     public void shouldTranslateMultilineStrings() {
         final String gremlinAsPython = translator.translate(
-                g.addV().property("text", "a"+ System.lineSeparator() + "\"and\"" + System.lineSeparator() + "b").asAdmin().getGremlincode()).getScript();
+                g.addV().property("text", "a"+ System.lineSeparator() + "\"and\"" + System.lineSeparator() + "b").asAdmin().getGremlinLang()).getScript();
         assertEquals("g.addV().property('text',\"\"\"a" + System.lineSeparator() + "\"and\"" + System.lineSeparator() + "b\"\"\")", gremlinAsPython);
     }
 
@@ -87,7 +87,7 @@ public class PythonTranslatorTest {
     public void shouldTranslateChildTraversals() {
         final String gremlinAsPython = translator.translate(
                 g.V().has("person", "name", "marko").
-                  where(outE()).asAdmin().getGremlincode()).getScript();
+                  where(outE()).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().has('person','name','marko').where(__.outE())", gremlinAsPython);
     }
 
@@ -95,7 +95,7 @@ public class PythonTranslatorTest {
     public void shouldTranslatePythonNamedSteps() {
         final String gremlinAsPython = translator.translate(
                 g.V().has("person", "name", "marko").
-                        where(outE().count().is(2).and(__.not(inE().count().is(3)))).asAdmin().getGremlincode()).getScript();
+                        where(outE().count().is(2).and(__.not(inE().count().is(3)))).asAdmin().getGremlinLang()).getScript();
         assertEquals("g.V().has('person','name','marko').where(__.outE().count().is_(2).and_(__.not_(__.inE().count().is_(3))))", gremlinAsPython);
     }
 
@@ -112,12 +112,12 @@ public class PythonTranslatorTest {
                 translator.translate(g.withStrategies(ReadOnlyStrategy.instance(),
                         SubgraphStrategy.build().checkAdjacentVertices(false).vertices(hasLabel("person")).create(),
                         new SeedStrategy(999999)).
-                        V().has("name").asAdmin().getGremlincode()).getScript());
+                        V().has("name").asAdmin().getGremlinLang()).getScript());
     }
 
     @Test
     public void shouldTranslateLambdas() {
-        final Bytecode bytecode = g.withSideEffect("lengthSum", 0).withSack(1)
+        final GremlinLang bytecode = g.withSideEffect("lengthSum", 0).withSack(1)
                 .V()
                 .filter(Lambda.predicate("x -> x.get().label() == 'person'", "gremlin-groovy"))
                 .flatMap(Lambda.function("it.get().vertices(Direction.OUT)", "gremlin-groovy"))
@@ -125,14 +125,14 @@ public class PythonTranslatorTest {
                 .sideEffect(Lambda.consumer("x -> x.sideEffects(\"lengthSum\", x.sideEffects('lengthSum') + x.get())    ", "gremlin-groovy"))
                 .order().by(Lambda.comparator("a,b -> a == b ? 0 : (a > b) ? 1 : -1)", "gremlin-groovy"))
                 .sack(Lambda.biFunction("a,b -> a + b", "gremlin-groovy"))
-                .asAdmin().getGremlincode();
+                .asAdmin().getGremlinLang();
         assertEquals("g.withSideEffect('lengthSum',0).withSack(1).V().filter_(lambda: \"x -> x.get().label() == 'person'\").flatMap(lambda: \"it.get().vertices(Direction.OUT)\").map(lambda: \"x -> x : len(x.get().value('name'))\").sideEffect(lambda: \"x -> x.sideEffects(\\\"lengthSum\\\", x.sideEffects('lengthSum') + x.get())\").order().by(lambda: \"a,b -> a == b ? 0 : (a > b) ? 1 : -1)\").sack(lambda: \"a,b -> a + b\")",
                 translator.translate(bytecode).getScript());
     }
 
     @Test
     public void shouldTranslateWithSyntaxSugar() {
-      final String gremlinAsPython = translator.translate(g.V().range(0, 10).has("person", "name", "marko").limit(2).values("name").asAdmin().getGremlincode())
+      final String gremlinAsPython = translator.translate(g.V().range(0, 10).has("person", "name", "marko").limit(2).values("name").asAdmin().getGremlinLang())
           .getScript();
       assertEquals("g.V()[0:10].has('person','name','marko')[0:2].name", gremlinAsPython);
     }
@@ -140,7 +140,7 @@ public class PythonTranslatorTest {
     @Test
     public void shouldTranslateWithoutSyntaxSugar() {
       final String gremlinAsPython = noSugarTranslator
-          .translate(g.V().range(0, 10).has("person", "name", "marko").limit(2).values("name").asAdmin().getGremlincode())
+          .translate(g.V().range(0, 10).has("person", "name", "marko").limit(2).values("name").asAdmin().getGremlinLang())
           .getScript();
       assertEquals("g.V().range_(0,10).has('person','name','marko').limit(2).values('name')", gremlinAsPython);
     }
@@ -154,7 +154,7 @@ public class PythonTranslatorTest {
     }
 
     private void assertTranslation(final String expectedTranslation, final Object... objs) {
-        final String script = translator.translate(g.inject(objs).asAdmin().getGremlincode()).getScript();
+        final String script = translator.translate(g.inject(objs).asAdmin().getGremlinLang()).getScript();
         assertEquals(String.format("g.inject(%s)", expectedTranslation), script);
     }
 }
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/BytecodeHelperTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/BytecodeHelperTest.java
index 2182a9d2ba..12eaa69a0a 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/BytecodeHelperTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/util/BytecodeHelperTest.java
@@ -22,7 +22,7 @@ import java.lang.reflect.Modifier;
 import java.util.Arrays;
 import java.util.List;
 import org.apache.tinkerpop.gremlin.process.traversal.Bindings;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
@@ -69,7 +69,7 @@ public class BytecodeHelperTest {
 
     @Test
     public void shouldFindStrategy() {
-        final Iterator<OptionsStrategy> itty = BytecodeHelper.findStrategies(g.with("x").with("y", 100).V().asAdmin().getGremlincode(), OptionsStrategy.class);
+        final Iterator<OptionsStrategy> itty = BytecodeHelper.findStrategies(g.with("x").with("y", 100).V().asAdmin().getGremlinLang(), OptionsStrategy.class);
         int counter = 0;
         while(itty.hasNext()) {
             final OptionsStrategy strategy = itty.next();
@@ -87,33 +87,33 @@ public class BytecodeHelperTest {
 
     @Test
     public void shouldNotFindStrategy() {
-        final Iterator<ReadOnlyStrategy> itty = BytecodeHelper.findStrategies(g.with("x").with("y", 100).V().asAdmin().getGremlincode(), ReadOnlyStrategy.class);
+        final Iterator<ReadOnlyStrategy> itty = BytecodeHelper.findStrategies(g.with("x").with("y", 100).V().asAdmin().getGremlinLang(), ReadOnlyStrategy.class);
         assertThat(itty.hasNext(), is(false));
     }
 
     @Test
     public void shouldNotFindGremlinGroovyLambdaLanguage() {
-        final Optional<String> lambda = BytecodeHelper.getLambdaLanguage(g.V().out("knows").map(Lambda.function("it.get()")).asAdmin().getGremlincode());
+        final Optional<String> lambda = BytecodeHelper.getLambdaLanguage(g.V().out("knows").map(Lambda.function("it.get()")).asAdmin().getGremlinLang());
         assertThat(lambda.isPresent(), is(true));
     }
 
     @Test
     public void shouldNotFindLambdaLanguage() {
-        final Optional<String> lambda = BytecodeHelper.getLambdaLanguage(g.V().out("knows").map(__.identity()).asAdmin().getGremlincode());
+        final Optional<String> lambda = BytecodeHelper.getLambdaLanguage(g.V().out("knows").map(__.identity()).asAdmin().getGremlinLang());
         assertThat(lambda.isPresent(), is(false));
     }
 
     @Test
     public void shouldRemoveBindings() {
         final Bindings b = Bindings.instance();
-        final Bytecode bc = g.V(b.of("x", 1)).out(b.of("y", "knows")).asAdmin().getGremlincode();
-        final Bytecode filteredBeforeRemoved = BytecodeHelper.filterInstructions(
-                bc, i -> Stream.of(i.getArguments()).anyMatch(o -> o instanceof Bytecode.Binding));
+        final GremlinLang bc = g.V(b.of("x", 1)).out(b.of("y", "knows")).asAdmin().getGremlinLang();
+        final GremlinLang filteredBeforeRemoved = BytecodeHelper.filterInstructions(
+                bc, i -> Stream.of(i.getArguments()).anyMatch(o -> o instanceof GremlinLang.Binding));
         assertEquals(2, filteredBeforeRemoved.getStepInstructions().size());
 
         BytecodeHelper.removeBindings(bc);
-        final Bytecode filteredAfterRemoved = BytecodeHelper.filterInstructions(
-                bc, i -> Stream.of(i.getArguments()).anyMatch(o -> o instanceof Bytecode.Binding));
+        final GremlinLang filteredAfterRemoved = BytecodeHelper.filterInstructions(
+                bc, i -> Stream.of(i.getArguments()).anyMatch(o -> o instanceof GremlinLang.Binding));
         assertEquals(0, filteredAfterRemoved.getStepInstructions().size());
     }
 
@@ -121,7 +121,7 @@ public class BytecodeHelperTest {
     public void shouldDetermineOperation() {
         assertThat(BytecodeHelper.isGraphOperation(TX_COMMIT.getBytecode()), is(true));
         assertThat(BytecodeHelper.isGraphOperation(TX_ROLLBACK.getBytecode()), is(true));
-        assertThat(BytecodeHelper.isGraphOperation(g.V().out("knows").asAdmin().getGremlincode()), is(false));
+        assertThat(BytecodeHelper.isGraphOperation(g.V().out("knows").asAdmin().getGremlinLang()), is(false));
     }
 
     @Test
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
index 82a0fda90b..e74e289e31 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.structure.io.graphson;
 
 import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Compare;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.PBiPredicate;
@@ -246,8 +246,8 @@ public class GraphSONMapperEmbeddedTypeTest extends AbstractGraphSONTest {
     public void shouldHandleBytecodeBinding() throws Exception {
         assumeThat(version, not(startsWith("v1")));
 
-        final Bytecode.Binding<String> o = new Bytecode.Binding<>("test", "testing");
-        assertEquals(o, serializeDeserialize(mapper, o, Bytecode.Binding.class));
+        final GremlinLang.Binding<String> o = new GremlinLang.Binding<>("test", "testing");
+        assertEquals(o, serializeDeserialize(mapper, o, GremlinLang.Binding.class));
     }
 
     @Test
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java
index afc57b2c9d..2dd9175da4 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.structure.io.graphson;
 
 import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.TextP;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
@@ -89,14 +89,14 @@ public class GraphSONMapperPartialEmbeddedTypeTest extends AbstractGraphSONTest
         // first validate the failures of TINKERPOP-1738 - prior to the jackson fix on 2.9.4 one of these would have
         // passed based on the ordering of the properties
         try {
-            mapper.readValue(bytecodeJSONFail1, Bytecode.class);
+            mapper.readValue(bytecodeJSONFail1, GremlinLang.class);
             fail("Should have thrown an error because 'bigint1value' is not an int32");
         } catch (Exception ex) {
             assertThat(ex, instanceOf(JsonMappingException.class));
         }
 
         try {
-            mapper.readValue(bytecodeJSONFail2, Bytecode.class);
+            mapper.readValue(bytecodeJSONFail2, GremlinLang.class);
             fail("Should have thrown an error because 'bigint1value' is not an int32");
         } catch (Exception ex) {
             assertThat(ex, instanceOf(JsonMappingException.class));
@@ -106,8 +106,8 @@ public class GraphSONMapperPartialEmbeddedTypeTest extends AbstractGraphSONTest
         final String bytecodeJSON1 = "{\"@type\":\"g:Bytecode\",\"@value\":{\"step\":[[\"addV\",\"poc_int\"],[\"property\",\"bigint1value\",{\"@type\":\"g:Int64\",\"@value\":-4294967295}]]}}";
         final String bytecodeJSON2 = "{\"@value\":{\"step\":[[\"addV\",\"poc_int\"],[\"property\",\"bigint1value\",{\"@value\":-4294967295,\"@type\":\"g:Int64\"}]]},\"@type\":\"g:Bytecode\"}";
 
-        final Bytecode bytecode1 = mapper.readValue(bytecodeJSON1, Bytecode.class);
-        final Bytecode bytecode2 = mapper.readValue(bytecodeJSON2, Bytecode.class);
+        final GremlinLang bytecode1 = mapper.readValue(bytecodeJSON1, GremlinLang.class);
+        final GremlinLang bytecode2 = mapper.readValue(bytecodeJSON2, GremlinLang.class);
         assertEquals(bytecode1, bytecode2);
     }
 
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapperTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapperTest.java
index 577b793430..dbd51053d4 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapperTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoMapperTest.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.structure.io.gryo;
 
 import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
 import org.apache.tinkerpop.gremlin.process.traversal.TextP;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalExplanation;
@@ -351,8 +351,8 @@ public class GryoMapperTest {
 
     @Test
     public void shouldHandleBytecode() throws Exception {
-        final Bytecode bytecode = __().out().outV().outE().asAdmin().getGremlincode();
-        assertEquals(bytecode.toString(), serializeDeserialize(bytecode, Bytecode.class).toString());
+        final GremlinLang bytecode = __().out().outV().outE().asAdmin().getGremlinLang();
+        assertEquals(bytecode.toString(), serializeDeserialize(bytecode, GremlinLang.class).toString());
     }
 
     @Test
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Client.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Client.java
index a3b400fbe1..0fc8d5bad9 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Client.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Client.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.driver;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.tinkerpop.gremlin.driver.exception.ConnectionException;
 import org.apache.tinkerpop.gremlin.driver.exception.NoHostAvailableException;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
@@ -519,7 +519,7 @@ public abstract class Client {
 
         @Override
         public CompletableFuture<ResultSet> submitAsync(final Traversal traversal) {
-            final Bytecode gremlincode = traversal.asAdmin().getGremlincode();
+            final GremlinLang gremlincode = traversal.asAdmin().getGremlinLang();
             gremlincode.addG(graphOrTraversalSource);
             return submitAsync(gremlincode.getGremlin(), gremlincode.getParameters());
         }
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/HttpGremlinRequestEncoder.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/HttpGremlinRequestEncoder.java
index 21335f9f0d..9089c56b1f 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/HttpGremlinRequestEncoder.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/HttpGremlinRequestEncoder.java
@@ -32,7 +32,7 @@ import org.apache.tinkerpop.gremlin.driver.RequestInterceptor;
 import org.apache.tinkerpop.gremlin.driver.UserAgent;
 import org.apache.tinkerpop.gremlin.driver.auth.Auth.AuthenticationException;
 import org.apache.tinkerpop.gremlin.driver.exception.ResponseException;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.util.MessageSerializerV4;
 import org.apache.tinkerpop.gremlin.util.message.RequestMessageV4;
 import org.apache.tinkerpop.gremlin.util.ser.SerTokensV4;
@@ -62,13 +62,10 @@ public final class HttpGremlinRequestEncoder extends MessageToMessageEncoder<Req
     @Override
     protected void encode(final ChannelHandlerContext channelHandlerContext, final RequestMessageV4 requestMessage, final List<Object> objects) throws Exception {
         final String mimeType = serializer.mimeTypesSupported()[0];
-        // only GraphSON4 and GraphBinary4 recommended for serialization of Bytecode requests
-        if (requestMessage.getField("gremlin") instanceof Bytecode &&
-                !mimeType.equals(SerTokensV4.MIME_GRAPHSON_V4) &&
-                !mimeType.equals(SerTokensV4.MIME_GRAPHBINARY_V4)) {
+        if (requestMessage.getField("gremlin") instanceof GremlinLang) {
             throw new ResponseException(HttpResponseStatus.BAD_REQUEST, String.format(
-                    "An error occurred during serialization of this request [%s] - it could not be sent to the server - Reason: only GraphSON3 and GraphBinary recommended for serialization of Bytecode requests, but used %s",
-                    requestMessage, serializer.getClass().getName()));
+                    "An error occurred during serialization of this request [%s] - it could not be sent to the server - Reason: GremlinLang is not intended to be send as query.",
+                    requestMessage));
         }
 
         try {
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteConnection.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteConnection.java
index 60cf2309d7..cf89ed54ff 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteConnection.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteConnection.java
@@ -25,10 +25,9 @@ import org.apache.tinkerpop.gremlin.driver.RequestOptions;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnectionException;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.OptionsStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.util.BytecodeHelper;
 import org.apache.tinkerpop.gremlin.structure.Transaction;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 
@@ -224,10 +223,10 @@ public class DriverRemoteConnection implements RemoteConnection {
     }
 
     @Override
-    public <E> CompletableFuture<RemoteTraversal<?, E>> submitAsync(final Bytecode gremlincode) throws RemoteConnectionException {
+    public <E> CompletableFuture<RemoteTraversal<?, E>> submitAsync(final GremlinLang gremlinLang) throws RemoteConnectionException {
         try {
-            gremlincode.addG(remoteTraversalSourceName);
-            return client.submitAsync(gremlincode.getGremlin(), getRequestOptions(gremlincode))
+            gremlinLang.addG(remoteTraversalSourceName);
+            return client.submitAsync(gremlinLang.getGremlin(), getRequestOptions(gremlinLang))
                     .thenApply(rs -> new DriverRemoteTraversal<>(rs, client, attachElements, conf));
         } catch (Exception ex) {
             throw new RemoteConnectionException(ex);
@@ -243,8 +242,8 @@ public class DriverRemoteConnection implements RemoteConnection {
         return Optional.empty();
     }
 
-    protected static RequestOptions getRequestOptions(final Bytecode bytecode) {
-        final Iterator<OptionsStrategy> itty = bytecode.getOptionsStrategies().iterator();
+    protected static RequestOptions getRequestOptions(final GremlinLang gremlinLang) {
+        final Iterator<OptionsStrategy> itty = gremlinLang.getOptionsStrategies().iterator();
         final RequestOptions.Builder builder = RequestOptions.build();
         while (itty.hasNext()) {
             final OptionsStrategy optionsStrategy = itty.next();
@@ -259,7 +258,7 @@ public class DriverRemoteConnection implements RemoteConnection {
                 builder.language((String) options.get(ARGS_LANGUAGE));
         }
 
-        final Map<String, Object> parameters = bytecode.getParameters();
+        final Map<String, Object> parameters = gremlinLang.getParameters();
         if (parameters != null && !parameters.isEmpty()) {
             parameters.forEach(builder::addParameter);
         }
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTransaction.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTransaction.java
index bc115832a2..eb71c7c77d 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTransaction.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteTransaction.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.driver.remote;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnectionException;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.RemoteTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.GraphOp;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
 import org.apache.tinkerpop.gremlin.structure.Transaction;
@@ -37,7 +37,7 @@ import static org.apache.tinkerpop.gremlin.process.traversal.GraphOp.TX_ROLLBACK
  * {@link RemoteConnection} that is bound to a session.
  * <p/>
  * For users, starting a transaction with {@link #begin()} will produce a {@link TraversalSource} that can be used
- * across multiple threads sending the bytecode based requests to a remote session. It is worth noting that the session
+ * across multiple threads sending the gremlin requests to a remote session. It is worth noting that the session
  * will process these requests in a serial fashion and not in parallel. Calling {@link #commit()} or
  * {@link #rollback()} will also close the session and no additional traversal can be executed on the
  * {@link TraversalSource}. A fresh call to {@link #begin()} will be required to open a fresh session to work with.
@@ -168,7 +168,7 @@ public class DriverRemoteTransaction implements Transaction, RemoteConnection {
     }
 
     @Override
-    public <E> CompletableFuture<RemoteTraversal<?, E>> submitAsync(final Bytecode bytecode) throws RemoteConnectionException {
-        return sessionBasedConnection.submitAsync(bytecode);
+    public <E> CompletableFuture<RemoteTraversal<?, E>> submitAsync(final GremlinLang gremlinLang) throws RemoteConnectionException {
+        return sessionBasedConnection.submitAsync(gremlinLang);
     }
 }
diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteConnectionTest.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteConnectionTest.java
index 1a7b132e78..cc061f4af7 100644
--- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteConnectionTest.java
+++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/remote/DriverRemoteConnectionTest.java
@@ -40,7 +40,7 @@ public class DriverRemoteConnectionTest {
                         with(TokensV4.ARGS_BATCH_SIZE, 1000).
                         with(TokensV4.ARGS_EVAL_TIMEOUT, 100000L).
                         with(TokensV4.ARGS_USER_AGENT, "test").
-                        V().asAdmin().getGremlincode());
+                        V().asAdmin().getGremlinLang());
         assertEquals(1000, options.getBatchSize().get().intValue());
         assertEquals(100000L, options.getTimeout().get().longValue());
     }
@@ -50,7 +50,7 @@ public class DriverRemoteConnectionTest {
         final RequestOptions options = DriverRemoteConnection.getRequestOptions(
                 g.with(TokensV4.ARGS_BATCH_SIZE, 100).
                   with(TokensV4.ARGS_EVAL_TIMEOUT, 1000).
-                  V().asAdmin().getGremlincode());
+                  V().asAdmin().getGremlinLang());
         assertEquals(Integer.valueOf(100), options.getBatchSize().get());
         assertEquals(Long.valueOf(1000), options.getTimeout().get());
     }
diff --git a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/ast/VarAsBindingASTTransformation.groovy b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/ast/VarAsBindingASTTransformation.groovy
index 3f761432e8..e06b12f14e 100644
--- a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/ast/VarAsBindingASTTransformation.groovy
+++ b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/ast/VarAsBindingASTTransformation.groovy
@@ -23,7 +23,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.Order
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__
 import org.apache.tinkerpop.gremlin.process.traversal.Translator
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang
 import org.apache.tinkerpop.gremlin.process.traversal.Bindings
 import org.apache.tinkerpop.gremlin.util.CollectionUtil
 import org.codehaus.groovy.ast.ASTNode
@@ -49,7 +49,7 @@ import org.codehaus.groovy.transform.GroovyASTTransformation
 
 /**
  * Converts variables used in Gremlin to {@link Bindings} declarations. By doing this, the generated traversal ends up
- * having those {@link Bindings} in the Gremlin {@link Bytecode} which means that when passed through a
+ * having those {@link Bindings} in the Gremlin {@link GremlinLang} which means that when passed through a
  * {@link Translator} to generate a script form, the variables are preserved.
  * <p/>
  * This AST Transformation is meant to work with a single lines of Gremlin and only Gremlin. Inclusion of Groovy code
diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
index 9010578e53..790654e8f9 100644
--- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
+++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/engine/GremlinExecutor.java
@@ -27,7 +27,7 @@ import org.apache.tinkerpop.gremlin.jsr223.ConcurrentBindings;
 import org.apache.tinkerpop.gremlin.jsr223.GremlinPlugin;
 import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngine;
 import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngineManager;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.util.BytecodeHelper;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalInterruptedException;
@@ -313,8 +313,8 @@ public class GremlinExecutor implements AutoCloseable {
                 if (gremlin instanceof String) {
                     o = gremlinScriptEngineManager.getEngineByName(lang).eval((String) gremlin, bindings);
                 }
-                else if (gremlin instanceof Bytecode) {
-                    final Bytecode bytecode = (Bytecode) gremlin;
+                else if (gremlin instanceof GremlinLang) {
+                    final GremlinLang bytecode = (GremlinLang) gremlin;
                     final Traversal.Admin<?, ?> traversal = eval(
                             bytecode, bindings, BytecodeHelper.getLambdaLanguage(bytecode).orElse("gremlin-groovy"), "g");
 
@@ -395,7 +395,7 @@ public class GremlinExecutor implements AutoCloseable {
     /**
      * Evaluates bytecode with bindings for a specific language into a {@link Traversal}.
      */
-    public Traversal.Admin eval(final Bytecode bytecode, final Bindings boundVars, final String language, final String traversalSource) throws ScriptException {
+    public Traversal.Admin eval(final GremlinLang bytecode, final Bindings boundVars, final String language, final String traversalSource) throws ScriptException {
         final String lang = Optional.ofNullable(language).orElse("gremlin-groovy");
 
         final Bindings bindings = new SimpleBindings();
diff --git a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
index 0c5aa49777..ede4b91dfe 100644
--- a/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
+++ b/gremlin-groovy/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine.java
@@ -38,7 +38,7 @@ import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngine;
 import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngineFactory;
 import org.apache.tinkerpop.gremlin.jsr223.ImportCustomizer;
 import org.apache.tinkerpop.gremlin.jsr223.TranslatorCustomizer;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
@@ -273,7 +273,7 @@ public class GremlinGroovyScriptEngine extends GroovyScriptEngineImpl implements
     }
 
     @Override
-    public Traversal.Admin eval(final Bytecode bytecode, final Bindings bindings, final String traversalSource) throws ScriptException {
+    public Traversal.Admin eval(final GremlinLang bytecode, final Bindings bindings, final String traversalSource) throws ScriptException {
         // these validations occur before merging in bytecode bindings which will override existing ones. need to
         // extract the named traversalsource prior to that happening so that bytecode bindings can share the same
         // namespace as global bindings (e.g. traversalsources and graphs).
diff --git a/gremlin-groovy/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineTest.java b/gremlin-groovy/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineTest.java
index 3c34565f8c..a78921cae9 100644
--- a/gremlin-groovy/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineTest.java
+++ b/gremlin-groovy/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineTest.java
@@ -27,7 +27,7 @@ import org.apache.tinkerpop.gremlin.groovy.jsr223.ast.AmbiguousMethodASTTransfor
 import org.apache.tinkerpop.gremlin.groovy.jsr223.ast.RepeatASTTransformationCustomizer;
 import org.apache.tinkerpop.gremlin.groovy.jsr223.ast.VarAsBindingASTTransformation;
 import org.apache.tinkerpop.gremlin.jsr223.DefaultImportCustomizer;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@ -496,7 +496,7 @@ public class GremlinGroovyScriptEngineTest {
                         "map(l)." +
                         System.lineSeparator() +
                         "order().by('name',o)", bindings);
-        final Bytecode bytecode = t.getGremlincode();
+        final GremlinLang bytecode = t.getGremlinLang();
         engine.eval("g.V(b).out()", bindings);
 
         final PythonTranslator translator = PythonTranslator.of("g");
@@ -529,7 +529,7 @@ public class GremlinGroovyScriptEngineTest {
 
         final Traversal.Admin t = (Traversal.Admin)
                 engine.eval("g.inject(-Infinity,NaN,xx1).is(P.eq(Infinity).or(P.eq(NaN)).or(P.eq(+Infinity)))", bindings);
-        final Bytecode bytecode = t.getGremlincode();
+        final GremlinLang bytecode = t.getGremlinLang();
 
         final Map<String,Object> bytecodeBindings = bytecode.getBindings();
         assertEquals(1, bytecodeBindings.size());
@@ -561,7 +561,7 @@ public class GremlinGroovyScriptEngineTest {
 
         final Traversal.Admin t = (Traversal.Admin)
                 engine.eval("g.V().as(\"v\").call(\"tinker.degree.centrality\", xx1, __.project(\"direction\").by(__.constant(OUT))).project(\"vertex\", \"degree\").by(select(\"v\")).by()", bindings);
-        final Bytecode bytecode = t.getGremlincode();
+        final GremlinLang bytecode = t.getGremlinLang();
 
         final Map<String,Object> bytecodeBindings = bytecode.getBindings();
         assertEquals(1, bytecodeBindings.size());
@@ -582,7 +582,7 @@ public class GremlinGroovyScriptEngineTest {
         // verify no Bindings bleedover
         final Traversal.Admin t2 = (Traversal.Admin)
                 engine.eval("g.inject([:])", bindings);
-        final Bytecode bytecode2 = t2.getGremlincode();
+        final GremlinLang bytecode2 = t2.getGremlinLang();
 
         final Map<String,Object> bytecodeBindings2 = bytecode2.getBindings();
         assertEquals(0, bytecodeBindings2.size());
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Context.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Context.java
index 42a045d4bd..ffa47c101c 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Context.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Context.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.server;
 import io.netty.channel.ChannelHandlerContext;
 import org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor;
 import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptChecker;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.AbstractTraverser;
 import org.apache.tinkerpop.gremlin.server.handler.HttpGremlinEndpointHandler;
 import org.apache.tinkerpop.gremlin.structure.Element;
@@ -63,7 +63,7 @@ public class Context {
      */
     public enum RequestContentType {
         /**
-         * Contents is of type {@link Bytecode}.
+         * Contents is of type {@link GremlinLang}.
          */
         BYTECODE,
 
@@ -188,7 +188,7 @@ public class Context {
     public void setStartedResponse() { startedResponse.set(true); }
 
     private RequestContentType determineRequestContents() {
-        if (gremlinArgument instanceof Bytecode)
+        if (gremlinArgument instanceof GremlinLang)
             return RequestContentType.BYTECODE;
         else if (gremlinArgument instanceof String)
             return RequestContentType.SCRIPT;
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/authz/Authorizer.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/authz/Authorizer.java
index bb197db49f..73aaa3361b 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/authz/Authorizer.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/authz/Authorizer.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.server.authz;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.util.TokensV4;
 import org.apache.tinkerpop.gremlin.util.message.RequestMessageV4;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
@@ -44,12 +44,12 @@ public interface Authorizer {
      * the request.
      *
      * @param user {@link AuthenticatedUser} that needs authorization.
-     * @param bytecode The gremlin {@link Bytecode} request to authorize the user for.
+     * @param bytecode The gremlin {@link GremlinLang} request to authorize the user for.
      * @param aliases A {@link Map} with a single key/value pair that maps the name of the {@link TraversalSource} in the
-     *                {@link Bytecode} request to name of one configured in Gremlin Server.
-     * @return The original or modified {@link Bytecode} to be used for further processing.
+     *                {@link GremlinLang} request to name of one configured in Gremlin Server.
+     * @return The original or modified {@link GremlinLang} to be used for further processing.
      */
-    public Bytecode authorize(final AuthenticatedUser user, final Bytecode bytecode, final Map<String, String> aliases) throws AuthorizationException;
+    public GremlinLang authorize(final AuthenticatedUser user, final GremlinLang bytecode, final Map<String, String> aliases) throws AuthorizationException;
 
     /**
      * Checks whether a user is authorized to have a script request from a gremlin client answered and raises an
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpBasicAuthorizationHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpBasicAuthorizationHandler.java
index 018f9ba563..712bac9cec 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpBasicAuthorizationHandler.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpBasicAuthorizationHandler.java
@@ -22,7 +22,7 @@ import io.netty.channel.ChannelHandler;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.ChannelInboundHandlerAdapter;
 import io.netty.util.ReferenceCountUtil;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.server.GremlinServer;
 import org.apache.tinkerpop.gremlin.server.auth.AuthenticatedUser;
 import org.apache.tinkerpop.gremlin.server.authz.AuthorizationException;
@@ -68,10 +68,10 @@ public class HttpBasicAuthorizationHandler extends ChannelInboundHandlerAdapter
                 }
                 switch (requestMessage.getGremlinType()) {
                     case TokensV4.OPS_BYTECODE:
-                        final Bytecode bytecode = (Bytecode) requestMessage.getGremlin();
+                        final GremlinLang bytecode = (GremlinLang) requestMessage.getGremlin();
                         final Map<String, String> aliases = new HashMap<>();
                         aliases.put(TokensV4.ARGS_G, requestMessage.getField(TokensV4.ARGS_G));
-                        final Bytecode restrictedBytecode = authorizer.authorize(user, bytecode, aliases);
+                        final GremlinLang restrictedBytecode = authorizer.authorize(user, bytecode, aliases);
                         final RequestMessageV4 restrictedMsg = RequestMessageV4.from(requestMessage, restrictedBytecode).create();
                         ctx.fireChannelRead(restrictedMsg);
                         break;
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
index b9d26423bf..bae34df9cd 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
@@ -34,7 +34,7 @@ import org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor;
 import org.apache.tinkerpop.gremlin.groovy.jsr223.TimedInterruptTimeoutException;
 import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngine;
 import org.apache.tinkerpop.gremlin.jsr223.JavaTranslator;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Failure;
 import org.apache.tinkerpop.gremlin.process.traversal.Operator;
 import org.apache.tinkerpop.gremlin.process.traversal.Order;
@@ -325,7 +325,7 @@ public class HttpGremlinEndpointHandler extends SimpleChannelInboundHandler<Requ
 
     private static Traversal.Admin<?,?> translateBytecodeToTraversal(Context ctx) throws ProcessingException {
         final RequestMessageV4 requestMsg = ctx.getRequestMessage();
-        if (!(requestMsg.getGremlin() instanceof Bytecode)) {
+        if (!(requestMsg.getGremlin() instanceof GremlinLang)) {
             throw new ProcessingException(GremlinError.gremlinType());
         }
 
@@ -340,7 +340,7 @@ public class HttpGremlinEndpointHandler extends SimpleChannelInboundHandler<Requ
         }
 
         final TraversalSource g = ctx.getGraphManager().getTraversalSource(traversalSourceName);
-        final Bytecode bytecode = (Bytecode) requestMsg.getGremlin(); // type checked at start of method.
+        final GremlinLang bytecode = (GremlinLang) requestMsg.getGremlin(); // type checked at start of method.
         try {
             final Optional<String> lambdaLanguage = BytecodeHelper.getLambdaLanguage(bytecode);
             if (!lambdaLanguage.isPresent())
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
index 2190f5c5e9..d394eb2703 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
@@ -38,7 +38,7 @@ import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.impl.io.ChunkedInputStream;
 import org.apache.http.util.EntityUtils;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator;
 import org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer;
 import org.apache.tinkerpop.gremlin.server.handler.HttpBasicAuthenticationHandler;
@@ -1123,7 +1123,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
 
     @Test
     public void should200OnPOSTWithValidGraphSONBytecodeRequest() throws Exception {
-        final Bytecode bytecodeQuery = EmptyGraph.instance().traversal().V().asAdmin().getGremlincode();
+        final GremlinLang bytecodeQuery = EmptyGraph.instance().traversal().V().asAdmin().getGremlinLang();
         final GraphSONMessageSerializerV4 serializer = new GraphSONMessageSerializerV4();
         final ByteBuf serializedRequest = serializer.serializeRequestAsBinary(
                 RequestMessageV4.build(bytecodeQuery).addG("gmodern").create(),
@@ -1148,7 +1148,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
 
     @Test
     public void should200OnPOSTWithValidGraphBinaryBytecodeRequest() throws Exception {
-        final Bytecode bytecodeQuery = EmptyGraph.instance().traversal().V().asAdmin().getGremlincode();
+        final GremlinLang bytecodeQuery = EmptyGraph.instance().traversal().V().asAdmin().getGremlinLang();
         final GraphBinaryMessageSerializerV4 serializer = new GraphBinaryMessageSerializerV4();
 //        final Map<String, String> aliases = new HashMap<>();
 //        aliases.put("g", "gmodern");
@@ -1220,7 +1220,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
 
     @Test
     public void should400OnPOSTWithInvalidRequestArgsWhenAliasesNotSuppliedForBytecode() throws Exception {
-        final Bytecode bytecodeQuery = EmptyGraph.instance().traversal().V().asAdmin().getGremlincode();
+        final GremlinLang bytecodeQuery = EmptyGraph.instance().traversal().V().asAdmin().getGremlinLang();
         final GraphSONMessageSerializerV4 serializer = new GraphSONMessageSerializerV4();
         final ByteBuf serializedRequest = serializer.serializeRequestAsBinary(
                 RequestMessageV4.build(bytecodeQuery).create(), new UnpooledByteBufAllocator(false));
@@ -1241,7 +1241,7 @@ public class GremlinServerHttpIntegrateTest extends AbstractGremlinServerIntegra
 
     @Test
     public void shouldErrorOnBytecodeGremlinFromApplicationJsonPostRequest() throws Exception {
-        final Bytecode bytecodeQuery = EmptyGraph.instance().traversal().V().asAdmin().getGremlincode();
+        final GremlinLang bytecodeQuery = EmptyGraph.instance().traversal().V().asAdmin().getGremlinLang();
         final UUID requestId = UUID.fromString("1e55c495-22d5-4a39-934a-a2744ba010ef");
         final String body = "{ \"gremlin\": \"" + bytecodeQuery + "\", \"requestId\": \"" + requestId + "\", \"g\": \"gmodern" + "\", \"language\":  \"gremlin-lang\"}";
         final CloseableHttpClient httpclient = HttpClients.createDefault();
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/authz/AllowListAuthorizer.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/authz/AllowListAuthorizer.java
index 6d60266d63..2cbdbc7926 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/authz/AllowListAuthorizer.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/authz/AllowListAuthorizer.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.server.authz;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.util.TokensV4;
 import org.apache.tinkerpop.gremlin.util.message.RequestMessageV4;
 import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.verification.VertexProgramRestrictionStrategy;
@@ -98,13 +98,13 @@ public class AllowListAuthorizer implements Authorizer {
      * sandbox grant.
      *
      * @param user {@link AuthenticatedUser} that needs authorization.
-     * @param bytecode The gremlin {@link Bytecode} request to authorize the user for.
+     * @param bytecode The gremlin {@link GremlinLang} request to authorize the user for.
      * @param aliases A {@link Map} with a single key/value pair that maps the name of the {@link TraversalSource} in the
-     *                {@link Bytecode} request to name of one configured in Gremlin Server.
-     * @return The original or modified {@link Bytecode} to be used for further processing.
+     *                {@link GremlinLang} request to name of one configured in Gremlin Server.
+     * @return The original or modified {@link GremlinLang} to be used for further processing.
      */
     @Override
-    public Bytecode authorize(final AuthenticatedUser user, final Bytecode bytecode, final Map<String, String> aliases) throws AuthorizationException {
+    public GremlinLang authorize(final AuthenticatedUser user, final GremlinLang bytecode, final Map<String, String> aliases) throws AuthorizationException {
         final Set<String> usernames = new HashSet<>();
 
         for (final String resource: aliases.values()) {
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/authz/AuthorizerTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/authz/AuthorizerTest.java
index fc80914dbf..e322fdf825 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/authz/AuthorizerTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/authz/AuthorizerTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.server.authz;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.util.message.RequestMessageV4;
 import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.verification.VertexProgramRestrictionStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@ -224,15 +224,15 @@ public class AuthorizerTest {
         }
     }
 
-    private Bytecode bytecodeRequest(final String requestType) {
+    private GremlinLang bytecodeRequest(final String requestType) {
         final GraphTraversalSource g = TinkerGraph.open().traversal();
-        final Bytecode bytecode;
+        final GremlinLang bytecode;
 
         switch (requestType) {
-            case BYTECODE:           bytecode = g.V().asAdmin().getGremlincode(); break;
-            case BYTECODE_LAMBDA:    bytecode = g.V().map(Lambda.function("it.get()")).asAdmin().getGremlincode(); break;
-            case BYTECODE_MUTATE:    bytecode = g.withoutStrategies(ReadOnlyStrategy.class).V().addV().asAdmin().getGremlincode(); break;
-            case BYTECODE_OLAP:      bytecode = g.withoutStrategies(VertexProgramRestrictionStrategy.class).withComputer().V().asAdmin().getGremlincode(); break;
+            case BYTECODE:           bytecode = g.V().asAdmin().getGremlinLang(); break;
+            case BYTECODE_LAMBDA:    bytecode = g.V().map(Lambda.function("it.get()")).asAdmin().getGremlinLang(); break;
+            case BYTECODE_MUTATE:    bytecode = g.withoutStrategies(ReadOnlyStrategy.class).V().addV().asAdmin().getGremlinLang(); break;
+            case BYTECODE_OLAP:      bytecode = g.withoutStrategies(VertexProgramRestrictionStrategy.class).withComputer().V().asAdmin().getGremlinLang(); break;
             case BYTECODE_SUBGRAPH:  bytecode = subgraphTraversals.get(); break;
             default: throw new IllegalArgumentException();
         }
@@ -253,24 +253,24 @@ public class AuthorizerTest {
         return RequestMessageV4.build(script).create();
     }
 
-    private static class SubgraphTraversals implements Supplier<Bytecode> {
+    private static class SubgraphTraversals implements Supplier<GremlinLang> {
         final GraphTraversalSource g = TinkerGraph.open().traversal();
-        final Iterator<Bytecode> mutatingBytecodes = Arrays.asList(
-                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlincode(),
-                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlincode(),
-                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlincode(),
-                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlincode(),
-                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlincode(),
-                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlincode(),
-                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlincode(),
-                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlincode(),
-                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlincode(),
-                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlincode(),
-                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlincode(),
-                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlincode()
+        final Iterator<GremlinLang> mutatingBytecodes = Arrays.asList(
+                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlinLang(),
+                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlinLang(),
+                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlinLang(),
+                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlinLang(),
+                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlinLang(),
+                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlinLang(),
+                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlinLang(),
+                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlinLang(),
+                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlinLang(),
+                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlinLang(),
+                g.withoutStrategies(SubgraphStrategy.class).V().asAdmin().getGremlinLang(),
+                g.withStrategies(SubgraphStrategy.build().vertices(__.bothE()).create()).V().asAdmin().getGremlinLang()
         ).iterator();
 
-        public Bytecode get() {
+        public GremlinLang get() {
             return mutatingBytecodes.next();
         }
     }
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinEnabledScriptEngineTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinEnabledScriptEngineTest.java
index f16e89a92f..ae37fc4c48 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinEnabledScriptEngineTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/GremlinEnabledScriptEngineTest.java
@@ -64,7 +64,7 @@ public class GremlinEnabledScriptEngineTest {
         final Bindings bindings = new SimpleBindings();
         bindings.put("x", g);
 
-        final Traversal evald = scriptEngine.eval(t.asAdmin().getGremlincode(), bindings, "x");
+        final Traversal evald = scriptEngine.eval(t.asAdmin().getGremlinLang(), bindings, "x");
 
         assertTraversals(t, evald);
 
@@ -85,7 +85,7 @@ public class GremlinEnabledScriptEngineTest {
         bindings.put("x", g);
         bindings.put(GremlinScriptEngine.HIDDEN_G, g);
 
-        scriptEngine.eval(t.asAdmin().getGremlincode(), bindings, "x");
+        scriptEngine.eval(t.asAdmin().getGremlinLang(), bindings, "x");
     }
 
     @Test(expected = IllegalArgumentException.class)
@@ -101,7 +101,7 @@ public class GremlinEnabledScriptEngineTest {
         final Bindings bindings = new SimpleBindings();
         bindings.put("x", g);
 
-        scriptEngine.eval(t.asAdmin().getGremlincode(), bindings, GremlinScriptEngine.HIDDEN_G);
+        scriptEngine.eval(t.asAdmin().getGremlinLang(), bindings, GremlinScriptEngine.HIDDEN_G);
     }
 
     @Test(expected = IllegalArgumentException.class)
@@ -117,7 +117,7 @@ public class GremlinEnabledScriptEngineTest {
         final Bindings bindings = new SimpleBindings();
         bindings.put("z", g);
 
-        scriptEngine.eval(t.asAdmin().getGremlincode(), bindings, "x");
+        scriptEngine.eval(t.asAdmin().getGremlinLang(), bindings, "x");
     }
 
     @Test(expected = IllegalArgumentException.class)
@@ -134,7 +134,7 @@ public class GremlinEnabledScriptEngineTest {
         bindings.put("z", g);
         bindings.put("x", "invalid-binding-for-x-given-x-should-be-traversal-source");
 
-        scriptEngine.eval(t.asAdmin().getGremlincode(), bindings, "x");
+        scriptEngine.eval(t.asAdmin().getGremlinLang(), bindings, "x");
     }
 
     @Test
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/MockGremlinScriptEngine.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/MockGremlinScriptEngine.java
index 4380df7044..ef5995fc55 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/MockGremlinScriptEngine.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/jsr223/MockGremlinScriptEngine.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.jsr223;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 
 import javax.script.AbstractScriptEngine;
@@ -51,7 +51,7 @@ public class MockGremlinScriptEngine extends AbstractScriptEngine implements Gre
     }
 
     @Override
-    public Traversal.Admin eval(Bytecode bytecode, Bindings bindings, String traversalSource) throws ScriptException {
+    public Traversal.Admin eval(GremlinLang bytecode, Bindings bindings, String traversalSource) throws ScriptException {
         return null;
     }
 
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java
index 0e8c2842f7..348f3e6c5d 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/CoreTraversalTest.java
@@ -107,7 +107,7 @@ public class CoreTraversalTest extends AbstractGremlinProcessTest {
         assertEquals(2, traversal.asAdmin().getSideEffects().<BulkSet>get("x").size());
         assertTrue(traversal.asAdmin().getSideEffects().<BulkSet>get("x").contains("ripple"));
         assertTrue(traversal.asAdmin().getSideEffects().<BulkSet>get("x").contains("lop"));
-        assertEquals(Traversal.Symbols.discard, traversal.asAdmin().getGremlincode().getStepInstructions().get(traversal.asAdmin().getGremlincode().getStepInstructions().size()-1).getOperator());
+        assertEquals(Traversal.Symbols.discard, traversal.asAdmin().getGremlinLang().getStepInstructions().get(traversal.asAdmin().getGremlinLang().getStepInstructions().size()-1).getOperator());
     }
 
     @Test
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/TranslationStrategy.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/TranslationStrategy.java
index 49ed03f0eb..c9207bc38d 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/TranslationStrategy.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/TranslationStrategy.java
@@ -23,7 +23,7 @@ import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngine;
 import org.apache.tinkerpop.gremlin.jsr223.SingleGremlinScriptEngineManager;
 import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.strategy.decoration.RemoteStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
@@ -72,11 +72,11 @@ public final class TranslationStrategy extends AbstractTraversalStrategy<Travers
 
     @Override
     public void apply(final Traversal.Admin<?, ?> traversal) {
-        if (!(traversal.isRoot()) || traversal.getGremlincode().isEmpty())
+        if (!(traversal.isRoot()) || traversal.getGremlinLang().isEmpty())
             return;
 
         final Traversal.Admin<?, ?> translatedTraversal;
-        final Bytecode bytecode = removeTranslationStrategy(insertBindingsForTesting(traversal.getGremlincode()));
+        final GremlinLang bytecode = removeTranslationStrategy(insertBindingsForTesting(traversal.getGremlinLang()));
 
         ////////////////
         if (this.translator instanceof Translator.StepTranslator) {
@@ -108,7 +108,7 @@ public final class TranslationStrategy extends AbstractTraversalStrategy<Travers
         // traversal. we might not do this sometimes in testing if lambdas are present but still want to use
         // TranslationStrategy
         if (assertBytecode)
-            assertEquals(removeTranslationStrategy(traversal.getGremlincode()), translatedTraversal.getGremlincode());
+            assertEquals(removeTranslationStrategy(traversal.getGremlinLang()), translatedTraversal.getGremlinLang());
     }
 
 
@@ -117,18 +117,18 @@ public final class TranslationStrategy extends AbstractTraversalStrategy<Travers
         return POSTS;
     }
 
-    private static final Bytecode removeTranslationStrategy(final Bytecode bytecode) {
+    private static final GremlinLang removeTranslationStrategy(final GremlinLang bytecode) {
         if (bytecode.getSourceInstructions().size() > 0)
             bytecode.getSourceInstructions().remove(0);
         return bytecode;
     }
 
-    private static final Bytecode insertBindingsForTesting(final Bytecode bytecode) {
-        final Bytecode newBytecode = new Bytecode();
-        for (final Bytecode.Instruction instruction : bytecode.getSourceInstructions()) {
+    private static final GremlinLang insertBindingsForTesting(final GremlinLang bytecode) {
+        final GremlinLang newBytecode = new GremlinLang();
+        for (final GremlinLang.Instruction instruction : bytecode.getSourceInstructions()) {
             newBytecode.addSource(instruction.getOperator(), instruction.getArguments());
         }
-        for (final Bytecode.Instruction instruction : bytecode.getStepInstructions()) {
+        for (final GremlinLang.Instruction instruction : bytecode.getStepInstructions()) {
             final Object[] args = instruction.getArguments();
             final Object[] newArgs = new Object[args.length];
 
@@ -136,11 +136,11 @@ public final class TranslationStrategy extends AbstractTraversalStrategy<Travers
                 if (args[i] == null)
                     newArgs[i] = null;
                 else if (args[i].equals("knows"))
-                    newArgs[i] = new Bytecode.Binding<>("a", "knows");
+                    newArgs[i] = new GremlinLang.Binding<>("a", "knows");
                 else if (args[i].equals("created"))
-                    newArgs[i] = new Bytecode.Binding<>("b", "created");
+                    newArgs[i] = new GremlinLang.Binding<>("b", "created");
                 else if (args[i].equals(10))
-                    newArgs[i] = new Bytecode.Binding<>("c", 10);
+                    newArgs[i] = new GremlinLang.Binding<>("c", 10);
                 else
                     newArgs[i] = args[i];
             }
diff --git a/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/GraphBinaryReaderWriterBenchmark.java b/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/GraphBinaryReaderWriterBenchmark.java
index b77a1df43a..3e1490b053 100644
--- a/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/GraphBinaryReaderWriterBenchmark.java
+++ b/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/GraphBinaryReaderWriterBenchmark.java
@@ -20,7 +20,7 @@ package org.apache.tinkerpop.gremlin.driver;
 
 import io.netty.buffer.UnpooledByteBufAllocator;
 import org.apache.tinkerpop.benchmark.util.AbstractBenchmarkBase;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.util.ser.NettyBufferFactory;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.structure.Graph;
@@ -56,11 +56,11 @@ public class GraphBinaryReaderWriterBenchmark extends AbstractBenchmarkBase {
         public Buffer bytecodeBuffer1 = bufferFactory.create(allocator.buffer(2048));
         public Buffer bytecodeBuffer2 = bufferFactory.create(allocator.buffer(2048));
         public Buffer pBuffer1 = bufferFactory.create(allocator.buffer(2048));
-        public final Bytecode bytecode1 = new Bytecode();
+        public final GremlinLang bytecode1 = new GremlinLang();
 
         public Buffer bufferWrite = bufferFactory.create(allocator.buffer(2048));
 
-        public Bytecode bytecode2;
+        public GremlinLang bytecode2;
 
         @Setup(Level.Trial)
         public void doSetup() throws IOException {
@@ -78,7 +78,7 @@ public class GraphBinaryReaderWriterBenchmark extends AbstractBenchmarkBase {
                     .property("name4", BigInteger.valueOf(33343455342245L))
                     .property("name5", "kjlkdnvlkdrnvldnvndlrkvnlhkjdkgkrtnlkndblknlknonboirnlkbnrtbonrobinokbnrklnbkrnblktengotrngotkrnglkt")
                     .property("name6", Instant.now())
-                    .asAdmin().getGremlincode();
+                    .asAdmin().getGremlinLang();
 
             writer.writeValue(bytecode1, bytecodeBuffer1, false);
             writer.writeValue(bytecode2, bytecodeBuffer2, false);
@@ -114,12 +114,12 @@ public class GraphBinaryReaderWriterBenchmark extends AbstractBenchmarkBase {
 
     @Benchmark
     public void readBytecode1(BenchmarkState state) throws IOException {
-        reader.readValue(state.bytecodeBuffer1, Bytecode.class, false);
+        reader.readValue(state.bytecodeBuffer1, GremlinLang.class, false);
     }
 
     @Benchmark
     public void readBytecode2(BenchmarkState state) throws IOException {
-        reader.readValue(state.bytecodeBuffer2, Bytecode.class, false);
+        reader.readValue(state.bytecodeBuffer2, GremlinLang.class, false);
     }
 
     @Benchmark
diff --git a/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/GraphSONMapperBenchmark.java b/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/GraphSONMapperBenchmark.java
index 08f09f14c6..3d93e73bee 100644
--- a/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/GraphSONMapperBenchmark.java
+++ b/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/GraphSONMapperBenchmark.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.driver;
 
 import org.apache.tinkerpop.benchmark.util.AbstractBenchmarkBase;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper;
 import org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONVersion;
@@ -53,8 +53,8 @@ public class GraphSONMapperBenchmark extends AbstractBenchmarkBase {
 
         public byte[] bytecodeBytes1;
         private byte[] bytecodeBytes2;
-        private final Bytecode bytecode1 = new Bytecode();
-        private Bytecode bytecode2;
+        private final GremlinLang bytecode1 = new GremlinLang();
+        private GremlinLang bytecode2;
 
         @Setup(Level.Trial)
         public void doSetup() throws IOException {
@@ -72,7 +72,7 @@ public class GraphSONMapperBenchmark extends AbstractBenchmarkBase {
                     .property("name4", BigInteger.valueOf(33343455342245L))
                     .property("name5", "kjlkdnvlkdrnvldnvndlrkvnlhkjdkgkrtnlkndblknlknonboirnlkbnrtbonrobinokbnrklnbkrnblktengotrngotkrnglkt")
                     .property("name6", Instant.now())
-                    .asAdmin().getGremlincode();
+                    .asAdmin().getGremlinLang();
 
 
             bytecodeBytes1 = mapper.writeValueAsBytes(bytecode1);
@@ -86,12 +86,12 @@ public class GraphSONMapperBenchmark extends AbstractBenchmarkBase {
 
     @Benchmark
     public void readBytecode1(BenchmarkState state) throws IOException {
-        mapper.readValue(state.bytecodeBytes1, Bytecode.class);
+        mapper.readValue(state.bytecodeBytes1, GremlinLang.class);
     }
 
     @Benchmark
     public void readBytecode2(BenchmarkState state) throws IOException {
-        mapper.readValue(state.bytecodeBytes2, Bytecode.class);
+        mapper.readValue(state.bytecodeBytes2, GremlinLang.class);
     }
 
     @Benchmark
diff --git a/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/SerializationBenchmark.java b/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/SerializationBenchmark.java
index e64ed13427..afd5b8f8c5 100644
--- a/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/SerializationBenchmark.java
+++ b/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/gremlin/driver/SerializationBenchmark.java
@@ -23,7 +23,7 @@ import io.netty.buffer.Unpooled;
 import io.netty.buffer.UnpooledByteBufAllocator;
 import io.netty.handler.codec.http.HttpResponseStatus;
 import org.apache.tinkerpop.benchmark.util.AbstractBenchmarkBase;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.structure.io.binary.DataType;
 import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertex;
 import org.apache.tinkerpop.gremlin.util.message.RequestMessageV4;
@@ -106,7 +106,7 @@ public class SerializationBenchmark extends AbstractBenchmarkBase {
             .build().code(HttpResponseStatus.OK).result(Collections.singletonList(new ReferenceVertex(1, "person")))
             .create();
 
-    private static final Bytecode bytecode = new Bytecode();
+    private static final GremlinLang bytecode = new GremlinLang();
     private static final RequestMessageV4 request = RequestMessageV4
             .build(bytecode)
             .create();
diff --git a/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/jsr223/JavaTranslatorBenchmark.java b/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/jsr223/JavaTranslatorBenchmark.java
index e116660e27..44c4699a19 100644
--- a/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/jsr223/JavaTranslatorBenchmark.java
+++ b/gremlin-tools/gremlin-benchmark/src/main/java/org/apache/tinkerpop/jsr223/JavaTranslatorBenchmark.java
@@ -49,12 +49,12 @@ public class JavaTranslatorBenchmark extends AbstractBenchmarkBase {
 
     @Benchmark
     public GraphTraversal.Admin<Vertex,Vertex> testTranslationShort() {
-        return translator.translate(g.V().asAdmin().getGremlincode());
+        return translator.translate(g.V().asAdmin().getGremlinLang());
     }
 
     @Benchmark
     public GraphTraversal.Admin<Vertex,Vertex> testTranslationMedium() {
-        return translator.translate(g.V().out().in("link").out().in("link").asAdmin().getGremlincode());
+        return translator.translate(g.V().out().in("link").out().in("link").asAdmin().getGremlinLang());
     }
 
     @Benchmark
@@ -64,13 +64,13 @@ public class JavaTranslatorBenchmark extends AbstractBenchmarkBase {
                 as("a").map(inE("followedBy").values("weight").mean()).as("b"),
                 as("a").inE("followedBy").as("c"),
                 as("c").filter(values("weight").where(P.gte("b"))).outV().as("d")).
-                <String>select("d").by("name").asAdmin().getGremlincode());
+                <String>select("d").by("name").asAdmin().getGremlinLang());
     }
 
     @Benchmark
     public GraphTraversal.Admin<Vertex,Vertex> testTranslationWithStrategy() {
         return translator.translate(g.withStrategies(ReadOnlyStrategy.instance())
                 .withStrategies(SubgraphStrategy.build().vertices(hasLabel("person")).create())
-                .V().out().in("link").out().in("link").asAdmin().getGremlincode());
+                .V().out().in("link").out().in("link").asAdmin().getGremlinLang());
     }
 }
diff --git a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/RequestMessageV4.java b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/RequestMessageV4.java
index b828ae1101..e36a327d73 100644
--- a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/RequestMessageV4.java
+++ b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/RequestMessageV4.java
@@ -18,7 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.util.message;
 
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.util.TokensV4;
 
 import java.util.Collections;
@@ -42,7 +42,7 @@ public final class RequestMessageV4 {
 
     private RequestMessageV4(final Object gremlin, final Map<String, Object> fields) {
         if (null == gremlin) throw new IllegalArgumentException("RequestMessage requires gremlin argument");
-        if (!(gremlin instanceof Bytecode || gremlin instanceof String)) {
+        if (!(gremlin instanceof GremlinLang || gremlin instanceof String)) {
             throw new IllegalArgumentException("gremlin argument for RequestMessage must be either String or Bytecode");
         }
 
@@ -53,7 +53,7 @@ public final class RequestMessageV4 {
             gremlinType = TokensV4.OPS_EVAL;
             // default language is "gremlin-groovy" for now, will be replaced in following PR's
             this.fields.putIfAbsent(TokensV4.ARGS_LANGUAGE, "gremlin-groovy");
-        } else if (gremlin instanceof Bytecode) {
+        } else if (gremlin instanceof GremlinLang) {
             gremlinType = TokensV4.OPS_BYTECODE;
         } else {
             gremlinType = TokensV4.OPS_INVALID;
diff --git a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/binary/RequestMessageSerializerV4.java b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/binary/RequestMessageSerializerV4.java
index ca36238d59..af4f9ed0dc 100644
--- a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/binary/RequestMessageSerializerV4.java
+++ b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/binary/RequestMessageSerializerV4.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.gremlin.util.ser.binary;
 
 import io.netty.buffer.ByteBuf;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.util.TokensV4;
 import org.apache.tinkerpop.gremlin.util.message.RequestMessageV4;
 import org.apache.tinkerpop.gremlin.util.ser.NettyBufferFactory;
@@ -55,7 +55,7 @@ public class RequestMessageSerializerV4 {
             if (gremlinType.equals(TokensV4.OPS_EVAL)) {
                 gremlin = context.readValue(buffer, String.class, false);
             } else if (gremlinType.equals(TokensV4.OPS_BYTECODE)) {
-                gremlin = context.readValue(buffer, Bytecode.class, false);
+                gremlin = context.readValue(buffer, GremlinLang.class, false);
             } else {
                 throw new SerializationException("Type " + gremlinType + " not supported for serialization.");
             }
diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
index 22bfc3983a..9651e8082f 100644
--- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
+++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
@@ -20,7 +20,7 @@ package org.apache.tinkerpop.gremlin.structure.io;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.UnpooledByteBufAllocator;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Operator;
 import org.apache.tinkerpop.gremlin.process.traversal.Order;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
@@ -129,9 +129,9 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
     public void shouldReadWriteBinding() throws Exception {
         final String resourceName = "binding";
 
-        final Bytecode.Binding resource = findModelEntryObject(resourceName);
-        final Bytecode.Binding fromStatic = read(readFromResource(resourceName), Bytecode.Binding.class);
-        final Bytecode.Binding recycled = read(write(fromStatic, Bytecode.Binding.class, resourceName), Bytecode.Binding.class);
+        final GremlinLang.Binding resource = findModelEntryObject(resourceName);
+        final GremlinLang.Binding fromStatic = read(readFromResource(resourceName), GremlinLang.Binding.class);
+        final GremlinLang.Binding recycled = read(write(fromStatic, GremlinLang.Binding.class, resourceName), GremlinLang.Binding.class);
         assertNotSame(fromStatic, recycled);
         assertEquals(fromStatic, recycled);
         assertEquals(resource, fromStatic);
@@ -171,8 +171,8 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
     public void shouldReadWriteBytecode() throws Exception {
         final String resourceName = "bytecode";
 
-        final Bytecode fromStatic = read(readFromResource(resourceName), Bytecode.class);
-        final Bytecode recycled = read(write(fromStatic, Bytecode.class, resourceName), Bytecode.class);
+        final GremlinLang fromStatic = read(readFromResource(resourceName), GremlinLang.class);
+        final GremlinLang recycled = read(write(fromStatic, GremlinLang.class, resourceName), GremlinLang.class);
         assertNotSame(fromStatic, recycled);
         assertEquals(fromStatic, recycled);
         // can't reasonably assert the bytecode against the original model as changes to strategies over time might
diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/Model.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
index 9c8b2c3dc8..48f2f18725 100644
--- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
+++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.structure.io;
 import io.netty.handler.codec.http.HttpResponseStatus;
 import org.apache.commons.configuration2.BaseConfiguration;
 import org.apache.commons.configuration2.Configuration;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Operator;
 import org.apache.tinkerpop.gremlin.process.traversal.Order;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
@@ -125,14 +125,14 @@ public class Model {
         addGraphStructureEntry(graph.vertices().next().properties().next(), "VertexProperty", "");
 
         addGraphProcessEntry(SackFunctions.Barrier.normSack, "Barrier", "");
-        addGraphProcessEntry(new Bytecode.Binding("x", 1), "Binding", "A \"Binding\" refers to a `Bytecode.Binding`.");
+        addGraphProcessEntry(new GremlinLang.Binding("x", 1), "Binding", "A \"Binding\" refers to a `Bytecode.Binding`.");
 
         final BulkSet<String> bulkSet = new BulkSet<>();
         bulkSet.add("marko", 1);
         bulkSet.add("josh", 2);
         addGraphProcessEntry(bulkSet, "BulkSet", "");
 
-        addGraphProcessEntry(g.V().hasLabel("person").out().in().tree().asAdmin().getGremlincode(), "Bytecode", "The following `Bytecode` example represents the traversal of `g.V().hasLabel('person').out().in().tree()`. Obviously the serialized `Bytecode` woudl be quite different for the endless variations of commands that could be used together in the Gremlin language.");
+        addGraphProcessEntry(g.V().hasLabel("person").out().in().tree().asAdmin().getGremlinLang(), "Bytecode", "The following `Bytecode` example represents the traversal of `g.V().hasLabel('person').out().in().tree()`. Obviously the serialized `Bytecode` woudl be quite different for the endless variations of commands that could be used together in the Gremlin language.");
         addGraphProcessEntry(VertexProperty.Cardinality.list, "Cardinality", "");
         addGraphProcessEntry(Column.keys, "Column", "");
         addGraphProcessEntry(Direction.OUT, "Direction", "");
diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/AbstractRoundTripTest.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/AbstractRoundTripTest.java
index d546855ada..7f529064ac 100644
--- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/AbstractRoundTripTest.java
+++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/AbstractRoundTripTest.java
@@ -21,7 +21,7 @@ package org.apache.tinkerpop.gremlin.util.ser;
 import org.apache.tinkerpop.gremlin.process.computer.Computer;
 import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Operator;
 import org.apache.tinkerpop.gremlin.process.traversal.Order;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
@@ -100,7 +100,7 @@ public abstract class AbstractRoundTripTest {
     protected static final GraphTraversalSource g = TinkerFactory.createModern().traversal();
     @Parameterized.Parameters(name = "Type{0}")
     public static Collection input() throws Exception {
-        final Bytecode bytecode = new Bytecode();
+        final GremlinLang bytecode = new GremlinLang();
         bytecode.addStep("V");
         bytecode.addStep("tail", 3);
         bytecode.addSource(TraversalSource.Symbols.withComputer, "myComputer");
@@ -201,9 +201,9 @@ public abstract class AbstractRoundTripTest {
 
                 new Object[] {"UUID", UUID.randomUUID(), null},
                 new Object[] {"Bytecode", bytecode, null},
-                new Object[] {"Binding", new Bytecode.Binding<>("x", 123), null},
+                new Object[] {"Binding", new GremlinLang.Binding<>("x", 123), null},
                 new Object[] {"Traverser", new DefaultRemoteTraverser<>("marko", 100), null},
-                new Object[] {"Class", Bytecode.class, null},
+                new Object[] {"Class", GremlinLang.class, null},
                 new Object[] {"ByteBuffer", ByteBuffer.wrap(new byte[]{ 1, 2, 3 }), null},
                 new Object[] {"InetAddressV4", InetAddress.getByName("localhost"), null},
                 new Object[] {"InetAddressV6", InetAddress.getByName("::1"), null},
@@ -261,7 +261,7 @@ public abstract class AbstractRoundTripTest {
                 }},
                 new Object[] {"TraversalStrategySubgraph", SubgraphStrategy.build().vertices(hasLabel("person")).create(), (Consumer<TraversalStrategyProxy>) strategy -> {
                     assertEquals(SubgraphStrategy.class, strategy.getStrategyClass());
-                    assertEquals(hasLabel("person").asAdmin().getGremlincode(), strategy.getConfiguration().getProperty(SubgraphStrategy.VERTICES));
+                    assertEquals(hasLabel("person").asAdmin().getGremlinLang(), strategy.getConfiguration().getProperty(SubgraphStrategy.VERTICES));
                 }},
                 new Object[] {"BulkSet", bulkSet, null},
                 new Object[] {"Tree", tree, null},
diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/MessageSerializerV4Test.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/MessageSerializerV4Test.java
index 78ccf0e0f9..1bc3da07be 100644
--- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/MessageSerializerV4Test.java
+++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/MessageSerializerV4Test.java
@@ -71,7 +71,7 @@ public class MessageSerializerV4Test {
         final Map<String, String> aliases = new HashMap<>();
         aliases.put("g","g");
 
-        final RequestMessageV4 request = RequestMessageV4.build(t.getGremlincode())
+        final RequestMessageV4 request = RequestMessageV4.build(t.getGremlinLang())
                 .addMaterializeProperties(TokensV4.MATERIALIZE_PROPERTIES_TOKENS)
                 .addTimeoutMillis(500)
                 .addG("g1")
diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/TypeSerializerFailureTests.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/TypeSerializerFailureTests.java
index dcaa4658eb..4d78e0323c 100644
--- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/TypeSerializerFailureTests.java
+++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/TypeSerializerFailureTests.java
@@ -20,7 +20,7 @@
 package org.apache.tinkerpop.gremlin.util.ser.binary;
 
 import io.netty.buffer.UnpooledByteBufAllocator;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.util.ser.NettyBufferFactory;
 import org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
@@ -58,11 +58,11 @@ public class TypeSerializerFailureTests {
 
     @Parameterized.Parameters(name = "Value={0}")
     public static Collection input() {
-        final Bytecode.Binding b = new Bytecode.Binding(null, "b");
+        final GremlinLang.Binding b = new GremlinLang.Binding(null, "b");
 
         final ReferenceVertex vertex = new ReferenceVertex("a vertex", null);
 
-        final Bytecode bytecode = new Bytecode();
+        final GremlinLang bytecode = new GremlinLang();
         bytecode.addStep(null);
 
         final BulkSet<Object> bulkSet = new BulkSet<>();
diff --git a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
index bb8d70b161..410e3b4b72 100644
--- a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
+++ b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
@@ -175,7 +175,7 @@ public class SparqlTraversalSource extends GraphTraversalSource {
         final SparqlTraversalSource clone = this.withStrategies(SparqlStrategy.instance()).clone();
 
         // the inject() holds the sparql which the SparqlStrategy then detects and converts to a traversal
-        clone.bytecode.addStep(GraphTraversal.Symbols.inject, query);
+        clone.gremlinLang.addStep(GraphTraversal.Symbols.inject, query);
         final GraphTraversal.Admin<S, S> traversal = new DefaultGraphTraversal(clone);
         return traversal.addStep(new InjectStep<>(traversal, query));
     }
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/io/graphson/GraphSONTranslator.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/io/graphson/GraphSONTranslator.java
index 766e624d2c..98b5995b7a 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/io/graphson/GraphSONTranslator.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/io/graphson/GraphSONTranslator.java
@@ -20,7 +20,7 @@
 package org.apache.tinkerpop.gremlin.tinkergraph.structure.io.graphson;
 
 import org.apache.tinkerpop.gremlin.jsr223.JavaTranslator;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
@@ -71,11 +71,11 @@ final class GraphSONTranslator<S extends TraversalSource, T extends Traversal.Ad
     }
 
     @Override
-    public T translate(final Bytecode bytecode) {
+    public T translate(final GremlinLang bytecode) {
         try {
             final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
             this.writer.writeObject(outputStream, bytecode);
-            return this.wrappedTranslator.translate(this.reader.readObject(new ByteArrayInputStream(outputStream.toByteArray()), Bytecode.class));
+            return this.wrappedTranslator.translate(this.reader.readObject(new ByteArrayInputStream(outputStream.toByteArray()), GremlinLang.class));
         } catch (final Exception e) {
             throw new IllegalStateException(e.getMessage(), e);
         }
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/io/gryo/GryoTranslator.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/io/gryo/GryoTranslator.java
index 90e9eba40d..13221a8203 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/io/gryo/GryoTranslator.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/io/gryo/GryoTranslator.java
@@ -20,7 +20,7 @@
 package org.apache.tinkerpop.gremlin.tinkergraph.structure.io.gryo;
 
 import org.apache.tinkerpop.gremlin.jsr223.JavaTranslator;
-import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
+import org.apache.tinkerpop.gremlin.process.traversal.GremlinLang;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
@@ -51,11 +51,11 @@ final class GryoTranslator<S extends TraversalSource, T extends Traversal.Admin<
     }
 
     @Override
-    public T translate(final Bytecode bytecode) {
+    public T translate(final GremlinLang bytecode) {
         try {
             final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
             this.writer.writeObject(outputStream, bytecode);
-            return this.wrappedTranslator.translate(this.reader.readObject(new ByteArrayInputStream(outputStream.toByteArray()), Bytecode.class));
+            return this.wrappedTranslator.translate(this.reader.readObject(new ByteArrayInputStream(outputStream.toByteArray()), GremlinLang.class));
         } catch (final Exception e) {
             throw new IllegalStateException(e.getMessage(), e);
         }