Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Benchmark/ProblemTests.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Benchmark/ProblemTests.cs	(revision 14777)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Benchmark/ProblemTests.cs	(revision 14834)
@@ -11,4 +11,5 @@
   using HeuristicLab.Problems.ProgramSynthesis.Push.Expressions;
   using HeuristicLab.Problems.ProgramSynthesis.Push.Generators;
+  using HeuristicLab.Problems.ProgramSynthesis.Push.Generators.CodeGenerator;
   using HeuristicLab.Problems.ProgramSynthesis.Push.Interpreter;
   using HeuristicLab.Problems.ProgramSynthesis.Push.Stack;
@@ -218,5 +219,5 @@
     }
 
-    private static double GetDiff<T>(IReadOnlyList<T> estimated, IStack<T> resultStack)
+    private static double GetDiff<T>(IReadOnlyList<T> estimated, IPushStack<T> resultStack)
       where T : IComparable {
       var count = Math.Min(estimated.Count, resultStack.Count);
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/BooleanExpressionTests.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/BooleanExpressionTests.cs	(revision 14777)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/BooleanExpressionTests.cs	(revision 14834)
@@ -15,5 +15,5 @@
     }
 
-    protected override IStack<bool> Stack
+    protected override IPushStack<bool> Stack
     {
       get
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/CodeExpressionTests.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/CodeExpressionTests.cs	(revision 14777)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/CodeExpressionTests.cs	(revision 14834)
@@ -16,5 +16,5 @@
     }
 
-    protected override IStack<Expression> Stack
+    protected override IPushStack<Expression> Stack
     {
       get
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/CommonTests.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/CommonTests.cs	(revision 14777)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/CommonTests.cs	(revision 14834)
@@ -10,5 +10,5 @@
     protected abstract string TypeName { get; }
 
-    protected abstract IStack<T> Stack { get; }
+    protected abstract IPushStack<T> Stack { get; }
 
     protected abstract T[] GetValues(int count);
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/ExecExpressionTests.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/ExecExpressionTests.cs	(revision 14777)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/ExecExpressionTests.cs	(revision 14834)
@@ -16,5 +16,5 @@
     }
 
-    protected override IStack<Expression> Stack
+    protected override IPushStack<Expression> Stack
     {
       get
@@ -25,5 +25,6 @@
 
     protected override void Test(Expression expression) {
-      this.interpreter.RunAsync(expression, true).Wait();
+      this.interpreter.Run(expression, true);
+      this.interpreter.Step();
     }
 
@@ -61,10 +62,10 @@
       var third = PushParser.Parse("C");
 
-      this.interpreter.ExecStack.Push(third, second, first);
-      this.Test(new ExecKExpression());
+      interpreter.ExecStack.Push(third, second, first);
+      Test(new ExecKExpression());
 
-      Assert.AreEqual(first, this.interpreter.ExecStack.Top);
-      Assert.AreEqual(third, this.interpreter.ExecStack.Bottom);
-      this.TestStackCounts(2);
+      Assert.AreEqual(first, interpreter.ExecStack.Top);
+      Assert.AreEqual(third, interpreter.ExecStack.Bottom);
+      TestStackCounts(2);
     }
 
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/FloatExpressionTests.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/FloatExpressionTests.cs	(revision 14777)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/FloatExpressionTests.cs	(revision 14834)
@@ -21,5 +21,5 @@
     }
 
-    protected override IStack<double> Stack
+    protected override IPushStack<double> Stack
     {
       get
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/IntegerExpressionTests.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/IntegerExpressionTests.cs	(revision 14777)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/IntegerExpressionTests.cs	(revision 14834)
@@ -17,5 +17,5 @@
     }
 
-    protected override IStack<long> Stack
+    protected override IPushStack<long> Stack
     {
       get
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/NameExpressionTests.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/NameExpressionTests.cs	(revision 14777)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Interpreter/Expressions/NameExpressionTests.cs	(revision 14834)
@@ -1,4 +1,3 @@
-﻿namespace HeuristicLab.Tests.Interpreter.Expressions
-{
+﻿namespace HeuristicLab.Tests.Interpreter.Expressions {
   using HeuristicLab.Problems.ProgramSynthesis.Push.Expressions;
   using HeuristicLab.Problems.ProgramSynthesis.Push.Generators;
@@ -8,6 +7,5 @@
 
   [TestClass]
-  public class NameExpressionTests : CommonTests<string>
-  {
+  public class NameExpressionTests : CommonTests<string> {
     protected override string TypeName
     {
@@ -18,5 +16,5 @@
     }
 
-    protected override IStack<string> Stack
+    protected override IPushStack<string> Stack
     {
       get
@@ -30,6 +28,6 @@
     [TestCategory("ExpressionTest")]
     [TestCategory("NameExpressionTest")]
-    public void TestRand()
-    {
+    public void TestRand() {
+      this.interpreter.Configuration.ErcOptions.NameErcOptions.IsEnabled = true;
       this.interpreter.Run(new NameRandExpression());
 
@@ -43,6 +41,5 @@
     [TestCategory("ExpressionTest")]
     [TestCategory("NameExpressionTest")]
-    public void TestRandomBound()
-    {
+    public void TestRandomBound() {
       this.interpreter.CustomExpressions.Add("c1", new CodeNoopExpression());
       this.interpreter.CustomExpressions.Add("c2", new CodeNoopExpression());
@@ -60,6 +57,5 @@
     [TestCategory("ExpressionTest")]
     [TestCategory("NameExpressionTest")]
-    public void TestRandomBoundWithInsufficientArguments()
-    {
+    public void TestRandomBoundWithInsufficientArguments() {
       this.TestWithInsufficientArguments("RANDBOUNDNAME");
     }
@@ -69,6 +65,5 @@
     [TestCategory("ExpressionTest")]
     [TestCategory("NameExpressionTest")]
-    public void TestQuote()
-    {
+    public void TestQuote() {
       this.interpreter.Run(new NameQuoteExpression());
 
@@ -78,7 +73,6 @@
     }
 
-    protected override string[] GetValues(int count)
-    {
-      var ng = new NameGenerator();
+    protected override string[] GetValues(int count) {
+      var ng = new StringGenerator();
       var values = new string[count];
 
@@ -88,6 +82,5 @@
     }
 
-    protected override void CheckOtherStacksAreEmpty()
-    {
+    protected override void CheckOtherStacksAreEmpty() {
       this.TestStackCounts(nameStack: null);
     }
