Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Checksum.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Checksum.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Checksum.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class Checksum : BenchmarkSuiteDataDescriptor {
-    private const string name = "Checksum";
+    private const string name = "Checksum - Hard";
     private const string fileName = "Checksum.csv";
     private const string description = "Given a string, convert each character in the string into its integer ASCII value, sum them, take the sum modulo 64, add the integer value of the space character, and then convert that integer back into its corresponding character(the checksum character). The program must print Check sum is X, where X is replaced by the correct checksum character.";
@@ -31,9 +31,9 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerConstantErcValue(64),
-            new IntegerRangeErcValue(-128, 128)),
+            new IntegerConstantErc(64),
+            new IntegerRangeErc(-128, 128)),
           CharErcOptions = new CharErcOptions(
-            new IntegerConstantErcValue(' '),
-            new IntegerRangeErcValue(0x20, 0x7e))
+            new IntegerConstantErc(' '),
+            new IntegerRangeErc(0x20, 0x7e))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/CollatzNumbers.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/CollatzNumbers.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/CollatzNumbers.cs	(revision 14952)
@@ -3,5 +3,5 @@
 
   public class CollatzNumbers : BenchmarkSuiteDataDescriptor {
-    private const string name = "Collatz Numbers";
+    private const string name = "Collatz Numbers - Hard";
     private const string fileName = "CollatzNumbers.csv";
     private const string description = "Given an integer, find the number of terms in the Collatz(hailstone) sequence starting from that integer.";
@@ -30,6 +30,6 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerConstantErcValue(0, 1),
-            new IntegerRangeErcValue(-100, 100))
+            new IntegerConstantErc(0, 1),
+            new IntegerRangeErc(-100, 100))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/CompareStringLengths.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/CompareStringLengths.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/CompareStringLengths.cs	(revision 14952)
@@ -3,5 +3,5 @@
 
   public class CompareStringLengths : BenchmarkSuiteDataDescriptor {
-    private const string name = "Compare String Lengths";
+    private const string name = "Compare String Lengths - Hard";
     private const string fileName = "CompareStringLengths.csv";
     private const string description = " Given three strings n1, n2, and n3, return true if length(n1) < length(n2) < length(n3), and false otherwise";
@@ -30,5 +30,5 @@
           ErcProbability = 0.05,
           BooleanErcOptions = new BooleanErcOptions(
-            new BooleanRandomErcValue {
+            new BooleanRandomErc {
               AllowTrue = true,
               AllowFalse = true
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/CountOdds.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/CountOdds.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/CountOdds.cs	(revision 14952)
@@ -3,5 +3,5 @@
 
   public class CountOdds : BenchmarkSuiteDataDescriptor {
-    private const string name = "Count Odds";
+    private const string name = "Count Odds - Hard";
     private const string fileName = "CountOdds.csv";
     private const string description = "Given a vector of integers, return the number of integers that are odd, without use of a specific even or odd instruction(but allowing instructions such as mod and quotient)";
@@ -30,6 +30,6 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerConstantErcValue(0, 1, 2),
-            new IntegerRangeErcValue(-1000, 1000)),
+            new IntegerConstantErc(0, 1, 2),
+            new IntegerRangeErc(-1000, 1000)),
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Digits.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Digits.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Digits.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class Digits : BenchmarkSuiteDataDescriptor {
-    private const string name = "Digits";
+    private const string name = "Digits - Hard";
     private const string fileName = "Digits.csv";
     private const string description = "Given an integer, print that integer’s digits each on their own line starting with the least significant digit.A negative integer should have the negative sign printed before the most significant digit.";
@@ -31,7 +31,7 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-10, 10)),
+            new IntegerRangeErc(-10, 10)),
           CharErcOptions = new CharErcOptions(
-            new IntegerConstantErcValue('\r'))
+            new IntegerConstantErc('\n'))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/DoubleLetters.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/DoubleLetters.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/DoubleLetters.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class DoubleLetters : BenchmarkSuiteDataDescriptor {
-    private const string name = "Double Letters";
+    private const string name = "Double Letters - Hard";
     private const string fileName = "DoubleLetters.csv";
     private const string description = "Given a string, print the string, doubling every letter character, and tripling every exclamation point.All other non-alphabetic and non-exclamation characters should be printed a single time each";
@@ -31,5 +31,5 @@
           ErcProbability = 0.02,
           CharErcOptions = new CharErcOptions(
-            new IntegerConstantErcValue('!'))
+            new IntegerConstantErc('!'))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/EvenSquares.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/EvenSquares.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/EvenSquares.cs	(revision 14952)
@@ -1,5 +1,5 @@
 ﻿namespace HeuristicLab.BenchmarkSuite.Problems {
   public class EvenSquares : BenchmarkSuiteDataDescriptor {
-    private const string name = "Even Sqaures";
+    private const string name = "Even Sqaures - Hard";
     private const string fileName = "EvenSquares.csv";
     private const string description = " Given an integer n, print all of the positive even perfect squares less than n on separate lines.";
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/ForLoopIndex.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/ForLoopIndex.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/ForLoopIndex.cs	(revision 14952)
@@ -1,5 +1,5 @@
 ﻿namespace HeuristicLab.BenchmarkSuite.Problems {
   public class ForLoopIndex : BenchmarkSuiteDataDescriptor {
-    private const string name = "For Loop Index";
+    private const string name = "For Loop Index - Hard";
     private const string fileName = "ForLoopIndex.csv";
     private const string description = "Given 3 integer inputs start,end, and step, print the integers in the sequence n|0 = start, n|i = n|i−1 + step for each n|i < end, each on their own line.";
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Grades.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Grades.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Grades.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class Grades : BenchmarkSuiteDataDescriptor {
-    private const string name = "Grades";
+    private const string name = "Grades - Hard";
     private const string fileName = "Grades.csv";
     private const string description = "Given 5 integers, the first four represent the lower numeric thresholds for achieving an A, B, C, and D, and will be distinct and in descending order.The fifth represents the student’s numeric grade.The program must print Student has a X grade., where X is A, B, C, D, or F depending on the thresholds and the numeric grade.";
@@ -31,7 +31,7 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(0, 100)),
+            new IntegerRangeErc(0, 100)),
           StringErcOptions = new StringErcOptions(
-            new StringConstantErcValue("Student has a ", " grade", "A", "B", "C", "D", "F"))
+            new StringConstantErc("Student has a ", " grade", "A", "B", "C", "D", "F"))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/LastIndexOfZero.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/LastIndexOfZero.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/LastIndexOfZero.cs	(revision 14952)
@@ -3,5 +3,5 @@
 
   public class LastIndexOfZero : BenchmarkSuiteDataDescriptor {
-    private const string name = "Last Index of Zero";
+    private const string name = "Last Index of Zero - Hard";
     private const string fileName = "LastIndexOfZero.csv";
     private const string description = "Given a vector of integers, at least one of which is 0, return the index of the last occurrence of 0 in the vector.";
@@ -30,6 +30,6 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerConstantErcValue(0),
-            new IntegerRangeErcValue(-50, 50))
+            new IntegerConstantErc(0),
+            new IntegerRangeErc(-50, 50))
           }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Median.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Median.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Median.cs	(revision 14952)
@@ -3,5 +3,5 @@
 
   public class Median : BenchmarkSuiteDataDescriptor {
-    private const string name = "Median";
+    private const string name = "Median - Medium";
     private const string fileName = "Median.csv";
     private const string description = "Given 3 integers, print their median.";
@@ -30,6 +30,6 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerConstantErcValue(0),
-            new IntegerRangeErcValue(-1000, 100))
+            new IntegerConstantErc(0),
+            new IntegerRangeErc(-1000, 100))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/MirrorImage.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/MirrorImage.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/MirrorImage.cs	(revision 14952)
@@ -3,5 +3,5 @@
 
   public class MirrorImage : BenchmarkSuiteDataDescriptor {
-    private const string name = "Mirror Image";
+    private const string name = "Mirror Image - Easy";
     private const string fileName = "MirrorImage.csv";
     private const string description = "Given two vectors of integers, return true if one vector is the reverse of the other, and false otherwise.";
@@ -30,5 +30,5 @@
           ErcProbability = 0.05,
           BooleanErcOptions = new BooleanErcOptions(
-            new BooleanRandomErcValue {
+            new BooleanRandomErc {
               AllowFalse = true,
               AllowTrue = true
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/NegativeToZero.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/NegativeToZero.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/NegativeToZero.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class NegativeToZero : BenchmarkSuiteDataDescriptor {
-    private const string name = "Negative to Zero";
+    private const string name = "Negative to Zero - Medium";
     private const string fileName = "NegativeToZero.csv";
     private const string description = "Given a vector of integers, return the vector where all negative integers have been replaced by 0.";
@@ -31,7 +31,7 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerConstantErcValue(0)),
+            new IntegerConstantErc(0)),
           IntegerVectorErcOptions = new IntegerVectorErcOptions(
-            new IntegerVectorConstantsErcValue(new int[0]))
+            new IntegerVectorConstantsErc(new int[0]))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/NumberIo.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/NumberIo.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/NumberIo.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class NumberIO : BenchmarkSuiteDataDescriptor {
-    private const string name = "NumberIO";
+    private const string name = "NumberIO - Easy";
     private const string fileName = "NumberIO.csv";
     private const string description = "Given an integer and a float, calc their sum.";
@@ -25,5 +25,5 @@
         TrainingCount = 25,
         TestCount = 1000,
-        EnabledDataTypes = DataTypes.Integer | DataTypes.Float,
+        EnabledDataTypes = DataTypes.Integer | DataTypes.Float | DataTypes.Print,
         EvalLimit = 200,
         MaxSize = 200,
@@ -31,7 +31,7 @@
           ErcProbability = 0.01,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-100, 100)),
+            new IntegerRangeErc(-100, 100)),
           FloatErcOptions = new FloatErcOptions(
-            new FloatRangeErcValue(-100, 100))
+            new FloatRangeErc(-100, 100))
         }
       };
@@ -44,5 +44,6 @@
         InputFloat = ExampleArgumentConverter.ConvertDoubles(input[0]),
         InputInteger = ExampleArgumentConverter.ConvertIntegers(input[1]),
-        OutputFloat = ExampleArgumentConverter.ConvertDoubles(output[0])
+        OutputFloat = ExampleArgumentConverter.ConvertDoubles(output[0]),
+        //OutputPrint = output[0]
       };
     }
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/PigLatin.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/PigLatin.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/PigLatin.cs	(revision 14952)
@@ -5,5 +5,5 @@
 
   public class PigLatin : BenchmarkSuiteDataDescriptor {
-    private const string name = "Pig Latin";
+    private const string name = "Pig Latin - Hard";
     private const string fileName = "PigLatin.csv";
     private const string description = "Given a string containing lowercase words separated by single spaces, print the string with each word translated to pig Latin.Specifically, if a word starts with a vowel, it should have“ay”added to its end; otherwise, the first letter is moved to the end of the word, followed by “ay”.";
@@ -32,9 +32,9 @@
           ErcProbability = 0.05,
           CharErcOptions = new CharErcOptions(
-            new IntegerConstantErcValue(' ', 'a', 'e', 'i', 'o', 'u'),
-            new IntegerRangeErcValue(0x20, 0x7e)),
+            new IntegerConstantErc(' ', 'a', 'e', 'i', 'o', 'u'),
+            new IntegerRangeErc(0x20, 0x7e)),
           StringErcOptions = new StringErcOptions(
-            new StringConstantErcValue("ay", "aeiou"),
-            new StringRandomErcValue {
+            new StringConstantErc("ay", "aeiou"),
+            new StringRandomErc {
               IsEnabled = true,
               AllowLowercaseLetters = true,
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/ReplaceSpaceWithNewline.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/ReplaceSpaceWithNewline.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/ReplaceSpaceWithNewline.cs	(revision 14952)
@@ -5,5 +5,5 @@
 
   public class ReplaceSpaceWithNewline : BenchmarkSuiteDataDescriptor {
-    private const string name = "Replace Space with Newline";
+    private const string name = "Replace Space with Newline - Medium";
     private const string fileName = "ReplaceSpaceWithNewline.csv";
     private const string description = " Given a string input, print the string, replacing spaces with newlines.Also, return the integer count of the non- whitespace characters. The input string will not have tabs or newlines.";
@@ -32,8 +32,8 @@
           ErcProbability = 0.05,
           CharErcOptions = new CharErcOptions(
-            new IntegerConstantErcValue(' ', '\r'),
-            new IntegerRangeErcValue(0x20, 0x7e)),
+            new IntegerConstantErc(' ', '\n'),
+            new IntegerRangeErc(0x20, 0x7e)),
           StringErcOptions = new StringErcOptions(
-            new StringRandomErcValue {
+            new StringRandomErc {
               IsEnabled = true,
               AllowLowercaseLetters = true,
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/ScrabbleScore.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/ScrabbleScore.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/ScrabbleScore.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class ScrabbleScore : BenchmarkSuiteDataDescriptor {
-    private const string name = "Scrabble Score";
+    private const string name = "Scrabble Score - Hard";
     private const string fileName = "ScrabbleScore.csv";
     private const string description = "Given a string of visible ASCII characters, return the Scrabble score for that string. Each letter has a corresponding value according to normal Scrabble rules, and non-letter characters are worth zero.";
@@ -61,7 +61,7 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerConstantErcValue(ScrabbleValues)),
+            new IntegerConstantErc(ScrabbleValues)),
           IntegerVectorErcOptions = new IntegerVectorErcOptions(
-            new IntegerVectorConstantsErcValue(ScrabbleValues))
+            new IntegerVectorConstantsErc(ScrabbleValues))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/SmallOrLarge.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/SmallOrLarge.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/SmallOrLarge.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class SmallOrLarge : BenchmarkSuiteDataDescriptor {
-    private const string name = "Small or Large";
+    private const string name = "Small or Large - Hard";
     private const string fileName = "SmallOrLarge.csv";
     private const string description =
@@ -32,7 +32,7 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-10000, 10000)),
+            new IntegerRangeErc(-10000, 10000)),
           StringErcOptions = new StringErcOptions(
-            new StringConstantErcValue("small", "large"))
+            new StringConstantErc("small", "large"))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Smallest.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Smallest.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Smallest.cs	(revision 14952)
@@ -3,5 +3,5 @@
 
   public class Smallest : BenchmarkSuiteDataDescriptor {
-    private const string name = "Smallest";
+    private const string name = "Smallest - Easy";
     private const string fileName = "Smallest.csv";
     private const string description = "Given 4 integers, print the smallest of them.";
@@ -30,5 +30,5 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-100, 100)),
+            new IntegerRangeErc(-100, 100)),
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/StringDifferences.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/StringDifferences.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/StringDifferences.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class StringDifferences : BenchmarkSuiteDataDescriptor {
-    private const string name = "String Differences";
+    private const string name = "String Differences - Hard";
     private const string fileName = "StringDifferences.csv";
     private const string description = "Given 2 strings (without whitespace) as input, find the indices at which the strings have different characters, stopping at the end of the shorter one.For each such index, print a line containing the index as well as the character in each string. For example, if the strings are “dealer” and “dollars”, the program should print: 1 e o, 2 a l, 4 e a";
@@ -31,7 +31,7 @@
           ErcProbability = 0.05,
           CharErcOptions = new CharErcOptions(
-            new IntegerConstantErcValue(' ', '\r')),
+            new IntegerConstantErc(' ', '\n')),
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-10, 10))
+            new IntegerRangeErc(-10, 10))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/StringLengthsBackwards.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/StringLengthsBackwards.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/StringLengthsBackwards.cs	(revision 14952)
@@ -3,5 +3,5 @@
 
   public class StringLengthsBackwards : BenchmarkSuiteDataDescriptor {
-    private const string name = "String Length Backwards";
+    private const string name = "String Length Backwards - Medium";
     private const string fileName = "StringLengthsBackwards.csv";
     private const string description = "Given a vector of strings, print the length of each string in the vector starting with the last and ending with the first.";
@@ -30,5 +30,5 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-100, 100))
+            new IntegerRangeErc(-100, 100))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/SumOfSquares.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/SumOfSquares.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/SumOfSquares.cs	(revision 14952)
@@ -3,5 +3,5 @@
 
   public class SumOfSquares : BenchmarkSuiteDataDescriptor {
-    private const string name = "Sum of Squares";
+    private const string name = "Sum of Squares - Hard";
     private const string fileName = "SumOfSquares.csv";
     private const string description = "Given integer n, return the sum of squaring each integer in the range[1, n].";
@@ -30,5 +30,5 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-100, 100))
+            new IntegerRangeErc(-100, 100))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/SuperAnagrams.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/SuperAnagrams.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/SuperAnagrams.cs	(revision 14952)
@@ -5,5 +5,5 @@
 
   public class SuperAnagrams : BenchmarkSuiteDataDescriptor {
-    private const string name = "Super Anagrams";
+    private const string name = "Super Anagrams - Hard";
     private const string fileName = "SuperAnagrams.csv";
     private const string description = "Given strings x and y of lowercase letters, return true if y is a super anagram of x, which is the case if every character in x is in y.To be true, y may contain extra characters, but must have at least as many copies of each character as x does.";
@@ -32,5 +32,5 @@
           ErcProbability = 0.05,
           BooleanErcOptions = new BooleanErcOptions(
-            new BooleanRandomErcValue {
+            new BooleanRandomErc {
               IsEnabled = true,
               AllowFalse = true,
@@ -38,7 +38,7 @@
             }),
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-1000, 1000)),
+            new IntegerRangeErc(-1000, 1000)),
           CharErcOptions = new CharErcOptions(
-            new IntegerRangeErcValue(0x20, 0x7e))
+            new IntegerRangeErc(0x20, 0x7e))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Syllables.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Syllables.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/Syllables.cs	(revision 14952)
@@ -5,5 +5,5 @@
 
   public class Syllables : BenchmarkSuiteDataDescriptor {
-    private const string name = "Syllables";
+    private const string name = "Syllables - Hard";
     private const string fileName = "Syllables.csv";
     private const string description = "Given a string containing symbols, spaces, digits, and lowercase letters, count the number of occurrences of vowels(a, e, i, o, u, y) in the string and print that number as X in The number of syllables is X.";
@@ -32,6 +32,6 @@
           ErcProbability = 0.05,
           StringErcOptions = new StringErcOptions(
-            new StringConstantErcValue("The number of syllables is ", "aeiouy" ),
-            new StringRandomErcValue {
+            new StringConstantErc("The number of syllables is ", "aeiouy" ),
+            new StringRandomErc {
               AllowLowercaseLetters = true,
               AllowUppercaseLetters = false,
@@ -43,6 +43,6 @@
             }),
           CharErcOptions = new CharErcOptions (
-            new IntegerConstantErcValue('a', 'e', 'i', 'o', 'u'),
-            new IntegerRangeErcValue(0x20, 0x7e))
+            new IntegerConstantErc('a', 'e', 'i', 'o', 'u'),
+            new IntegerRangeErc(0x20, 0x7e))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/VectorAverage.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/VectorAverage.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/VectorAverage.cs	(revision 14952)
@@ -1,5 +1,5 @@
 ﻿namespace HeuristicLab.BenchmarkSuite.Problems {
   public class VectorAverage : BenchmarkSuiteDataDescriptor {
-    private const string name = "Vector Average";
+    private const string name = "Vector Average - Medium";
     private const string fileName = "VectorAverage.csv";
     private const string description = "Given a vector of floats, return the average of those floats. Results are rounded to 4 decimal places.";
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/VectorSummed.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/VectorSummed.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/VectorSummed.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class VectorSummed : BenchmarkSuiteDataDescriptor {
-    private const string name = "Vector Summed";
+    private const string name = "Vector Summed - Hard";
     private const string fileName = "VectorSummed.csv";
     private const string description = "Given two equal-sized vectors of integers, return a vector of integers that contains the sum of the input vectors at each index.";
@@ -31,7 +31,7 @@
           ErcProbability = 0.05,
           IntegerVectorErcOptions = new IntegerVectorErcOptions(
-            new IntegerVectorConstantsErcValue(new int[0])),
+            new IntegerVectorConstantsErc(new int[0])),
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-1000, 1000))
+            new IntegerRangeErc(-1000, 1000))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/WallisPi.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/WallisPi.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/WallisPi.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class WallisPi : BenchmarkSuiteDataDescriptor {
-    private const string name = "Wallis Pi";
+    private const string name = "Wallis Pi - Hard";
     private const string fileName = "WallisPi.csv";
     private const string description = " John Wallis gave a infinite product that converges to π/4. Given an integer input n, compute an approximation of this product out to n terms.Results are rounded to 5 decimal place";
@@ -31,7 +31,7 @@
           ErcProbability = 0.05,
           FloatErcOptions = new FloatErcOptions(
-            new FloatRangeErcValue(-500, 500)),
+            new FloatRangeErc(-500, 500)),
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-500, 500))
+            new IntegerRangeErc(-500, 500))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/WordStats.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/WordStats.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/WordStats.cs	(revision 14952)
@@ -6,5 +6,5 @@
 
   public class WordStats : BenchmarkSuiteDataDescriptor {
-    private const string name = "Word Stats";
+    private const string name = "Word Stats - Hard";
     private const string fileName = "WordStats.csv";
     private const string description = "Given a string, print the number of words containing n characters for n from 1 to the length of the longest word. At the end of the output, print a line that gives the number of sentences and line that gives the average sentence length. A word is any string of consecutive non-whitespace characters(including sentence terminators). Every string will contain at least one sentence terminator(period, exclamation point, or question mark). The average sentence length is the number of words in the file divided by the number of sentence terminator characters.";
@@ -33,11 +33,11 @@
           ErcProbability = 0.05,
           IntegerErcOptions = new IntegerErcOptions(
-            new IntegerRangeErcValue(-100, 100)),
+            new IntegerRangeErc(-100, 100)),
           IntegerVectorErcOptions = new IntegerVectorErcOptions(
-            new IntegerVectorConstantsErcValue(new int[0])),
+            new IntegerVectorConstantsErc(new int[0])),
           CharErcOptions = new CharErcOptions(
-            new IntegerConstantErcValue('.', '?', '!', ' ', '\t', '\r', ':')),
+            new IntegerConstantErc('.', '?', '!', ' ', '\t', '\n', ':')),
           StringErcOptions = new StringErcOptions(
-            new StringConstantErcValue("words of length ", ": ", "number of sentences: ", "average sentence length: "))
+            new StringConstantErc("words of length ", ": ", "number of sentences: ", "average sentence length: "))
         }
       };
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/XWordLines.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/XWordLines.cs	(revision 14909)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Problems/XWordLines.cs	(revision 14952)
@@ -4,5 +4,5 @@
 
   public class XWordLines : BenchmarkSuiteDataDescriptor {
-    private const string name = "X-Word Lines";
+    private const string name = "X-Word Lines - Hard";
     private const string fileName = "XWordLines.csv";
     private const string description = "Given an integer X and a string that can contain spaces and newlines, print the string with exactly X words per line.The last line may have fewer than X words.";
@@ -31,5 +31,5 @@
           ErcProbability = 0.05,
           CharErcOptions = new CharErcOptions(
-            new IntegerConstantErcValue(' ', '\r')),
+            new IntegerConstantErc(' ', '\n')),
         }
       };
