Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/BattleRunnerDialog.Designer.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/BattleRunnerDialog.Designer.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/BattleRunnerDialog.Designer.cs	(revision 13013)
@@ -19,5 +19,5 @@
  */
 #endregion
-namespace HeuristicLab.Problems.GeneticProgramming.Views.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Views.Robocode {
   partial class BattleRunnerDialog {
     /// <summary>
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/BattleRunnerDialog.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/BattleRunnerDialog.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/BattleRunnerDialog.cs	(revision 13013)
@@ -23,7 +23,7 @@
 using System.Windows.Forms;
 using HeuristicLab.Common;
-using HeuristicLab.Problems.GeneticProgramming.RoboCode;
+using HeuristicLab.Problems.GeneticProgramming.Robocode;
 
-namespace HeuristicLab.Problems.GeneticProgramming.Views.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Views.Robocode {
   public partial class BattleRunnerDialog : Form {
     public int NrOfRounds {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/CodeNodeView.Designer.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/CodeNodeView.Designer.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/CodeNodeView.Designer.cs	(revision 13013)
@@ -19,5 +19,5 @@
  */
 #endregion
-namespace HeuristicLab.Problems.GeneticProgramming.Views.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Views.Robocode {
   partial class CodeNodeView {
     /// <summary> 
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/CodeNodeView.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/CodeNodeView.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/CodeNodeView.cs	(revision 13013)
@@ -23,7 +23,7 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
-using HeuristicLab.Problems.GeneticProgramming.RoboCode;
+using HeuristicLab.Problems.GeneticProgramming.Robocode;
 
-namespace HeuristicLab.Problems.GeneticProgramming.Views.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Views.Robocode {
   [View("CodeNode View")]
   [Content(typeof(CodeNode), IsDefaultView = true)]
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/EnemyCollectionView.Designer.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/EnemyCollectionView.Designer.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/EnemyCollectionView.Designer.cs	(revision 13013)
@@ -21,5 +21,5 @@
 
 
-namespace HeuristicLab.Problems.GeneticProgramming.Views.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Views.Robocode {
   partial class EnemyCollectionView {
     /// <summary> 
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/EnemyCollectionView.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/EnemyCollectionView.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/EnemyCollectionView.cs	(revision 13013)
@@ -20,12 +20,13 @@
 #endregion
 
-using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Data;
 using HeuristicLab.MainForm;
-using HeuristicLab.Problems.GeneticProgramming.RoboCode;
+using HeuristicLab.Problems.GeneticProgramming.Robocode;
 
-namespace HeuristicLab.Problems.GeneticProgramming.Views.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Views.Robocode {
   [View("EnemyCollection View")]
   [Content(typeof(EnemyCollection), true)]
-  public partial class EnemyCollectionView : Core.Views.CheckedItemListView<HeuristicLab.Data.StringValue> {
+  public partial class EnemyCollectionView : CheckedItemListView<StringValue> {
     public new EnemyCollection Content {
       get { return (EnemyCollection)base.Content; }
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/Plugin.cs.frame
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/Plugin.cs.frame	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/Plugin.cs.frame	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.PluginInfrastructure;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode.Views
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode.Views
 {
     [Plugin("HeuristicLab.Problems.Robocode.Views", "The Robocode problem for genetic programming.", "3.3.9.$WCREV$")]
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionCodeView.Designer.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionCodeView.Designer.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionCodeView.Designer.cs	(revision 13013)
@@ -19,5 +19,5 @@
  */
 #endregion
-namespace HeuristicLab.Problems.GeneticProgramming.Views.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Views.Robocode {
   partial class SolutionCodeView {
     /// <summary> 
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionCodeView.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionCodeView.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionCodeView.cs	(revision 13013)
@@ -25,7 +25,7 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
-using HeuristicLab.Problems.GeneticProgramming.RoboCode;
+using HeuristicLab.Problems.GeneticProgramming.Robocode;
 
-namespace HeuristicLab.Problems.GeneticProgramming.Views.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Views.Robocode {
   [View("Robocode Tank Code View")]
   [Content(typeof(Solution), IsDefaultView = true)]
@@ -45,9 +45,5 @@
     protected override void OnContentChanged() {
       base.OnContentChanged();
-      if (Content == null) {
-        programCode.Text = string.Empty;
-      } else {
-        programCode.Text = Interpreter.InterpretProgramTree(Content.Tree.Root, programName);
-      }
+      programCode.Text = Content == null ? string.Empty : Interpreter.InterpretProgramTree(Content.Tree.Root, programName);
     }
 
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionProgramView.Designer.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionProgramView.Designer.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionProgramView.Designer.cs	(revision 13013)
@@ -22,5 +22,5 @@
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views;
 
-namespace HeuristicLab.Problems.GeneticProgramming.Views.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Views.Robocode {
   partial class SolutionProgramView {
     private void InitializeComponent() {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionProgramView.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionProgramView.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode.Views/3.3/SolutionProgramView.cs	(revision 13013)
@@ -22,7 +22,7 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
-using HeuristicLab.Problems.GeneticProgramming.RoboCode;
+using HeuristicLab.Problems.GeneticProgramming.Robocode;
 
-namespace HeuristicLab.Problems.GeneticProgramming.Views.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Views.Robocode {
   [View("Robocode Tank Program Tree View")]
   [Content(typeof(Solution), IsDefaultView = false)]
@@ -39,9 +39,5 @@
     protected override void OnContentChanged() {
       base.OnContentChanged();
-      if (Content == null) {
-        graphTreeView.Content = null;
-      } else {
-        graphTreeView.Content = Content.Tree;
-      }
+      graphTreeView.Content = Content == null ? null : Content.Tree;
     }
   }
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/BattleRunner.java
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/BattleRunner.java	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/BattleRunner.java	(revision 13013)
@@ -27,68 +27,68 @@
 //
 public class BattleRunner {
-    public static String player = "Evaluation.output*";    
-    public static List<Double> score = new ArrayList<Double>();
+  public static String player = "Evaluation.output*";    
+  public static List<Double> score = new ArrayList<Double>();
 
-	// This program requires 5 arguments: 
+  // This program requires 5 arguments: 
   // The first argument is the name of the robot.
-	// The second argument is the path to the robocode installation. If not give, c:\robocode is assumed. 
-	// The third argument: true if Robocode should be shown, otherwise it is hidden. 
-	// The fourth argument is the number of rounds. 
+  // The second argument is the path to the robocode installation. If not give, c:\robocode is assumed. 
+  // The third argument: true if Robocode should be shown, otherwise it is hidden. 
+  // The fourth argument is the number of rounds. 
   // The remaining arguments are the names of the opponents. At least 1 must be provided. 
-	public static void main(String[] args) {
-		if (args.length < 5)
-			System.exit(-1);  
+  public static void main(String[] args) {
+    if (args.length < 5)
+      System.exit(-1);  
 
-		String roboCodePath = "C:\\robocode";
-		Boolean visible = false;		
-		String bots = "";
-		int numberOfRounds = 3;
-        String[] robots = new String[1 + args.length - 4];      
+    String roboCodePath = "C:\\robocode";
+    Boolean visible = false;
+    String bots = "";
+    int numberOfRounds = 3;
+    String[] robots = new String[1 + args.length - 4];
 
-		player = robots[0] = args[0];        
-		roboCodePath = args[1];
-		visible = Boolean.valueOf(args[2]);
-		numberOfRounds = Integer.valueOf(args[3]);
-		for (int i = 4; i < args.length; i++)
-			robots[i - 3] = args[i];
+    player = robots[0] = args[0];
+    roboCodePath = args[1];
+    visible = Boolean.valueOf(args[2]);
+    numberOfRounds = Integer.valueOf(args[3]);
+    for (int i = 4; i < args.length; i++) {
+      robots[i - 3] = args[i];
+    }
 
-        RobocodeEngine.setLogMessagesEnabled(false);
-        RobocodeEngine engine = new RobocodeEngine(new java.io.File(roboCodePath));
-		engine.setVisible(visible);        
-        engine.addBattleListener(new BattleObserver());       
+    RobocodeEngine.setLogMessagesEnabled(false);
+    RobocodeEngine engine = new RobocodeEngine(new java.io.File(roboCodePath));
+    engine.setVisible(visible);
+    engine.addBattleListener(new BattleObserver());
 
-		BattlefieldSpecification battlefield = new BattlefieldSpecification(800, 600);
-        RobotSpecification[] all = engine.getLocalRepository();
-		List<RobotSpecification> selectedRobots = new ArrayList<RobotSpecification>();
-		
-		for(RobotSpecification rs : all) {
-			for(String r : robots) {
-				if(r.equals(rs.getClassName())) {
-					selectedRobots.add(rs);				
-				}			
-			}
-		}		
-		
-		for (int i = 1; i < selectedRobots.size(); i++) {
-			BattleSpecification battleSpec = new BattleSpecification(numberOfRounds, battlefield, 
-			new RobotSpecification[] { selectedRobots.get(0), selectedRobots.get(i) });
+    BattlefieldSpecification battlefield = new BattlefieldSpecification(800, 600);
+    RobotSpecification[] all = engine.getLocalRepository();
+    List<RobotSpecification> selectedRobots = new ArrayList<RobotSpecification>();
+    
+    for(RobotSpecification rs : all) {
+      for(String r : robots) {
+        if(r.equals(rs.getClassName())) {
+          selectedRobots.add(rs);
+        }
+      }
+    }
 
-            // run our specified battle and wait till the battle finishes
-            engine.runBattle(battleSpec, true);
-        }
-        engine.close();
+    for (int i = 1; i < selectedRobots.size(); i++) {
+      BattleSpecification battleSpec = new BattleSpecification(numberOfRounds, battlefield, new RobotSpecification[] { selectedRobots.get(0), selectedRobots.get(i) });
 
-		// print out result which is then parsed by HeuristicLab
-        System.out.println(avg(score));
-        System.exit(0);
+      // run our specified battle and wait till the battle finishes
+      engine.runBattle(battleSpec, true);
     }
-	
-	private static double avg(List <Double> lst) {
-		double sum = 0;
-		for (double val : lst) {
-			sum += val;
-		}
-		return sum / lst.size();
-	}
+    engine.close();
+
+    // print out result which is then parsed by HeuristicLab
+    System.out.println(avg(score));
+    System.exit(0);
+  }
+
+  private static double avg(List <Double> lst) {
+    double sum = 0;
+    for (double val : lst) {
+      sum += val;
+    }
+    return sum / lst.size();
+  }
 }
 
@@ -97,9 +97,9 @@
 //
 class BattleObserver extends BattleAdaptor {
-	public void onBattleCompleted(BattleCompletedEvent e) {    
-		double robotScore = -1.0;
-		double opponentScore = -1.0;
-		
-        for (robocode.BattleResults result : e.getSortedResults()) {			
+  public void onBattleCompleted(BattleCompletedEvent e) {
+    double robotScore = -1.0;
+    double opponentScore = -1.0;
+    
+        for (robocode.BattleResults result : e.getSortedResults()) {
             if (result.getTeamLeaderName().contains(BattleRunner.player)) 
                 robotScore = result.getScore();
@@ -107,11 +107,11 @@
                 opponentScore = result.getScore();
         }
-		
-		//prevent div / 0 which can happen if both robots do not score
-		if((robotScore + opponentScore) == 0) {
-			BattleRunner.score.add(0.0);		
-		} else {
-			BattleRunner.score.add(robotScore / (robotScore + opponentScore));		
-		}
+    
+    //prevent div / 0 which can happen if both robots do not score
+    if((robotScore + opponentScore) == 0) {
+      BattleRunner.score.add(0.0);
+    } else {
+      BattleRunner.score.add(robotScore / (robotScore + opponentScore));
     }
+  }
 }
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/BestSolutionAnalyzer.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/BestSolutionAnalyzer.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/BestSolutionAnalyzer.cs	(revision 13013)
@@ -29,5 +29,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   [Item("Best Tank Program Analyzer",
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/EnemyCollection.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/EnemyCollection.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/EnemyCollection.cs	(revision 13013)
@@ -29,6 +29,6 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
-  [Item("EnemyCollection", "A collection of enemy robots.")]
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
+  [Item("EnemyCollection", "A collection of enemy robots for the Robocode genetic programming problem.")]
   [StorableClass]
   public class EnemyCollection : CheckedItemList<StringValue> {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Grammar.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Grammar.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Grammar.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   [Item("Robocode Grammar", "The grammar for the Robocode GP problem.")]
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Interpreter.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Interpreter.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Interpreter.cs	(revision 13013)
@@ -26,9 +26,7 @@
 using System.Linq;
 using System.Reflection;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   public static class Interpreter {
     public static double EvaluateTankProgram(ISymbolicExpressionTree tree, string path, EnemyCollection enemies, string robotName = null, bool showUI = false, int nrOfRounds = 3) {
@@ -47,4 +45,5 @@
       File.WriteAllText(srcRobotPath, interpretedProgram, System.Text.Encoding.Default);
 
+      // compile java source to class file
       ProcessStartInfo javaCompileInfo = new ProcessStartInfo();
       javaCompileInfo.FileName = "cmd.exe";
@@ -55,35 +54,31 @@
       javaCompileInfo.CreateNoWindow = true;
 
-      Process javaCompile = new Process();
-      javaCompile.StartInfo = javaCompileInfo;
-      javaCompile.Start();
+      using (Process javaCompile = new Process()) {
+        javaCompile.StartInfo = javaCompileInfo;
+        javaCompile.Start();
 
-      string cmdOutput = javaCompile.StandardOutput.ReadToEnd();
-      cmdOutput += javaCompile.StandardError.ReadToEnd();
+        string cmdOutput = javaCompile.StandardOutput.ReadToEnd();
+        cmdOutput += javaCompile.StandardError.ReadToEnd();
 
-      javaCompile.WaitForExit();
-      if (javaCompile.ExitCode != 0) {
-        DeleteRobotFiles(path, robotName);
-        throw new Exception("Compile Error: " + cmdOutput);
+        javaCompile.WaitForExit();
+        if (javaCompile.ExitCode != 0) {
+          DeleteRobotFiles(path, robotName);
+          throw new Exception("Compile Error: " + cmdOutput);
+        }
       }
 
       //parallel execution of multiple robocode instances can sometimes lead to a damaged robot.database
-      try { File.Delete(path + @"\robots\robot.database"); }
-      catch { }
+      var robotsDbFileName = Path.Combine(path, "robots", "robot.database");
+      if (File.Exists(robotsDbFileName))
+        File.Delete(robotsDbFileName);
 
       ProcessStartInfo evaluateCodeInfo = new ProcessStartInfo();
 
+      // execute a battle with numberOfRounds against a number of enemies
+      // TODO: seems there is a bug when selecting multiple enemies
       evaluateCodeInfo.FileName = "cmd.exe";
-      evaluateCodeInfo.Arguments = "/C java -cp " + battleRunnerPath + ";" + robocodeCoreJar + ";" + robocodeJar +
-                                  ";" + picocontainerJar + ";" + " BattleRunner Evaluation." + robotName + " " + path;
-
-      if (showUI) {
-        evaluateCodeInfo.Arguments += " true " + nrOfRounds + " ";
-      } else {
-        evaluateCodeInfo.Arguments += " false " + nrOfRounds + " ";
-      }
-
-      foreach (var enemy in enemies.CheckedItems)
-        evaluateCodeInfo.Arguments += enemy.Value + " ";
+      var classpath = string.Join(";", new[] { battleRunnerPath, robocodeCoreJar, robocodeJar, picocontainerJar });
+      var enemyRobotNames = string.Join(" ", enemies.CheckedItems.Select(i => i.Value));
+      evaluateCodeInfo.Arguments = string.Format("/C java -cp {0} BattleRunner Evaluation.{1} {2} {3} {4} {5}", classpath, robotName, path, showUI, nrOfRounds, enemyRobotNames);
 
       evaluateCodeInfo.RedirectStandardOutput = true;
@@ -92,25 +87,29 @@
       evaluateCodeInfo.CreateNoWindow = true;
 
-      Process evaluateCode = new Process();
-      evaluateCode.StartInfo = evaluateCodeInfo;
-      evaluateCode.Start();
-      evaluateCode.WaitForExit();
+      double evaluation;
+      using (Process evaluateCode = new Process()) {
+        evaluateCode.StartInfo = evaluateCodeInfo;
+        evaluateCode.Start();
+        evaluateCode.WaitForExit();
 
-      if (evaluateCode.ExitCode != 0) {
-        DeleteRobotFiles(path, robotName);
-        throw new Exception("Error running Robocode: " + evaluateCode.StandardError.ReadToEnd());
-      }
+        if (evaluateCode.ExitCode != 0) {
+          DeleteRobotFiles(path, robotName);
+          throw new Exception("Error running Robocode: " + evaluateCode.StandardError.ReadToEnd() + Environment.NewLine +
+                              evaluateCode.StandardOutput.ReadToEnd());
+        }
 
-      string scoreString = "";
-      double evaluation = -1.0;
-      try {
-        scoreString = evaluateCode.StandardOutput.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Last();
-        evaluation = Double.Parse(scoreString, CultureInfo.InvariantCulture);
-      }
-      catch (Exception ex) {
-        throw new Exception("Error parsing score string: " + ex.ToString());
-      }
-      finally {
-        DeleteRobotFiles(path, robotName);
+        try {
+          string scoreString =
+            evaluateCode.StandardOutput.ReadToEnd()
+              .Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
+              .Last();
+          evaluation = Double.Parse(scoreString, CultureInfo.InvariantCulture);
+        }
+        catch (Exception ex) {
+          throw new Exception("Error parsing score string: " + ex);
+        }
+        finally {
+          DeleteRobotFiles(path, robotName);
+        }
       }
 
@@ -119,9 +118,6 @@
 
     private static void DeleteRobotFiles(string path, string outputname) {
-      try {
-        File.Delete(path + @"\robots\Evaluation\" + outputname + ".java");
-        File.Delete(path + @"\robots\Evaluation\" + outputname + ".class");
-      }
-      catch { }
+      File.Delete(path + @"\robots\Evaluation\" + outputname + ".java");
+      File.Delete(path + @"\robots\Evaluation\" + outputname + ".class");
     }
 
@@ -132,5 +128,5 @@
       }
       catch {
-        throw new Exception("Error finding required RoboCode files.");
+        throw new Exception("Error finding required Robocode files.");
       }
       return fileName;
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Plugin.cs.frame
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Plugin.cs.frame	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Plugin.cs.frame	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.PluginInfrastructure;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode
 {
     [Plugin("HeuristicLab.Problems.Robocode", "The Robocode problem for genetic programming.", "3.3.9.$WCREV$")]
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/RobocodeEvaluator.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/RobocodeEvaluator.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/RobocodeEvaluator.cs	(revision 13013)
@@ -29,5 +29,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   [Item("Robocode Evaluator", "Evaluator for the Robocode GP problem.")]
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/RobocodeProblem.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/RobocodeProblem.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/RobocodeProblem.cs	(revision 13013)
@@ -30,5 +30,5 @@
 using HeuristicLab.PluginInfrastructure;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   [Creatable("Problems")]
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Solution.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Solution.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Solution.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   [Item("Solution", "Robocode program and configuration.")]
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Block.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Block.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Block.cs	(revision 13013)
@@ -26,5 +26,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Block : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/CodeNode.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/CodeNode.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/CodeNode.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public abstract class CodeNode : Symbol {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/EmptyEvent.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/EmptyEvent.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/EmptyEvent.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class EmptyEvent : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnBulletHit.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnBulletHit.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnBulletHit.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class OnBulletHit : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnBulletMissed.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnBulletMissed.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnBulletMissed.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class OnBulletMissed : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnHitByBullet.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnHitByBullet.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnHitByBullet.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class OnHitByBullet : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnHitRobot.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnHitRobot.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnHitRobot.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class OnHitRobot : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnHitWall.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnHitWall.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnHitWall.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class OnHitWall : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnScannedRobot.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnScannedRobot.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Events/OnScannedRobot.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class OnScannedRobot : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Run.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Run.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Event Methods/Run.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Run : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/BooleanTreeNode.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/BooleanTreeNode.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/BooleanTreeNode.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class BooleanTreeNode : SymbolicExpressionTreeTerminalNode {
@@ -53,5 +53,11 @@
 
     public override void ResetLocalParameters(IRandom random) {
-      value = random.Next(0, 2) == 1;
+      // initialization
+      value = random.NextDouble() > 0.5;
+    }
+
+    public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
+      // mutation: flip value with 5% probability
+      if (random.NextDouble() < 0.05) value = !value;
     }
   }
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Conjunction.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Conjunction.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Conjunction.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Conjunction : CodeNode {
@@ -55,5 +55,5 @@
     public override string Interpret(ISymbolicExpressionTreeNode node, IEnumerable<ISymbolicExpressionTreeNode> children) {
       if (children.Count() < 2)
-        throw new ArgumentException("Expected at leaset 2 children.", "children");
+        throw new ArgumentException("Expected at least two children.", "children");
 
       string result = string.Join(" && ", children.Select(c => ((CodeNode)c.Symbol).Interpret(c, c.Subtrees)));
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Disjunction.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Disjunction.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Disjunction.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Disjunction : CodeNode {
@@ -55,5 +55,5 @@
     public override string Interpret(ISymbolicExpressionTreeNode node, IEnumerable<ISymbolicExpressionTreeNode> children) {
       if (children.Count() < 2)
-        throw new ArgumentException("Expected at leaset 2 children.", "children");
+        throw new ArgumentException("Expected at least two children.", "children");
 
       string result = string.Join(" || ", children.Select(c => ((CodeNode)c.Symbol).Interpret(c, c.Subtrees)));
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/Equal.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/Equal.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/Equal.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Equal : CodeNode, ILogicalComparator {
@@ -52,5 +52,5 @@
       ISymbolicExpressionTreeNode lhs = null, rhs = null;
       if (children.Count() != 2)
-        throw new Exception("Unexpected number of children. Expected 2 children.");
+        throw new Exception("Unexpected number of children. Expected two children.");
 
       lhs = children.First();
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/GreaterThan.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/GreaterThan.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/GreaterThan.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class GreaterThan : CodeNode, ILogicalComparator {
@@ -52,5 +52,5 @@
       ISymbolicExpressionTreeNode lhs = null, rhs = null;
       if (children.Count() != 2)
-        throw new Exception("Unexpected number of children. Expected 2 children.");
+        throw new Exception("Unexpected number of children. Expected two children.");
 
       lhs = children.First();
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/GreaterThanOrEqual.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/GreaterThanOrEqual.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/GreaterThanOrEqual.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class GreaterThanOrEqual : CodeNode, ILogicalComparator {
@@ -52,5 +52,5 @@
       ISymbolicExpressionTreeNode lhs = null, rhs = null;
       if (children.Count() != 2)
-        throw new Exception("Unexpected number of children. Expected 2 children.");
+        throw new Exception("Unexpected number of children. Expected two children.");
 
       lhs = children.First();
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/ILogicalComparator.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/ILogicalComparator.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/ILogicalComparator.cs	(revision 13013)
@@ -20,5 +20,5 @@
 #endregion
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   public interface ILogicalComparator { }
 }
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/LessThan.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/LessThan.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/LessThan.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class LessThan : CodeNode, ILogicalComparator {
@@ -52,5 +52,5 @@
       ISymbolicExpressionTreeNode lhs = null, rhs = null;
       if (children.Count() != 2)
-        throw new Exception("Unexpected number of children. Expected 2 children.");
+        throw new Exception("Unexpected number of children. Expected two children.");
 
       lhs = children.First();
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/LessThanOrEqual.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/LessThanOrEqual.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Logical Comparators/LessThanOrEqual.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class LessThanOrEqual : CodeNode, ILogicalComparator {
@@ -52,5 +52,5 @@
       ISymbolicExpressionTreeNode lhs = null, rhs = null;
       if (children.Count() != 2)
-        throw new Exception("Unexpected number of children. Expected 2 children.");
+        throw new Exception("Unexpected number of children. Expected two children.");
 
       lhs = children.First();
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/LogicalExpression.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/LogicalExpression.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/LogicalExpression.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class LogicalExpression : CodeNode {
@@ -56,9 +56,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is LogicalValue || symbol is Conjunction || symbol is Disjunction || symbol is Negation))
-        throw new System.Exception("LogicalExpression was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(LogicalValue)
-                                           + " or " + typeof(Conjunction)
-                                           + " or " + typeof(Disjunction)
-                                           + " or " + typeof(Negation) + ".");
+        throw new InvalidProgramException("Negation was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type LogicalValue or Conjunction or Disjunction or Negation.");
 
       return Prefix + ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees) + Suffix;
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/LogicalValue.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/LogicalValue.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/LogicalValue.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class LogicalValue : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Negation.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Negation.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Logical Expressions/Negation.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Negation : CodeNode {
@@ -60,10 +60,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is LogicalValue || symbol is Conjunction || symbol is Disjunction || symbol is Negation || symbol is ILogicalComparator))
-        throw new System.Exception("Negation was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(LogicalValue)
-                                           + " or " + typeof(Conjunction)
-                                           + " or " + typeof(Disjunction)
-                                           + " or " + typeof(Negation)
-                                           + " or " + typeof(ILogicalComparator) + ".");
+        throw new InvalidProgramException("Negation was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type LogicalValue or Conjunction or Disjunction or Negation or ILogicalComparator.");
 
       return Prefix + ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees) + Suffix;
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Number.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Number.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Number.cs	(revision 13013)
@@ -26,5 +26,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Number : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/NumberTreeNode.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/NumberTreeNode.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/NumberTreeNode.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class NumberTreeNode : SymbolicExpressionTreeTerminalNode {
@@ -53,5 +53,13 @@
 
     public override void ResetLocalParameters(IRandom random) {
+      // random initialization
       value = random.Next(-360, 360);
+    }
+
+    public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
+      // random mutation (cyclic)
+      value = value + random.Next(-20, 20);
+      if (value < -360) value += 2 * 360;
+      else if (value > 359) value -= 2 * 360;
     }
   }
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Addition.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Addition.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Addition.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Addition : CodeNode, INumericalOperator {
@@ -55,5 +55,5 @@
     public override string Interpret(ISymbolicExpressionTreeNode node, IEnumerable<ISymbolicExpressionTreeNode> children) {
       if (children.Count() < 2)
-        throw new ArgumentException("Expected at leaset 2 children.", "children");
+        throw new ArgumentException("Expected at least two children.", "children");
 
       string result = string.Join(" + ", children.Select(c => ((CodeNode)c.Symbol).Interpret(c, c.Subtrees)));
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Division.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Division.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Division.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Division : CodeNode, INumericalOperator {
@@ -55,5 +55,5 @@
     public override string Interpret(ISymbolicExpressionTreeNode node, IEnumerable<ISymbolicExpressionTreeNode> children) {
       if (children.Count() < 2)
-        throw new ArgumentException("Expected at leaset 2 children.", "children");
+        throw new ArgumentException("Expected at least two children.", "children");
 
       string result = string.Join(" / ", children.Select(c => ((CodeNode)c.Symbol).Interpret(c, c.Subtrees)));
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/INumericalOperator.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/INumericalOperator.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/INumericalOperator.cs	(revision 13013)
@@ -20,5 +20,5 @@
 #endregion
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   public interface INumericalOperator { }
 }
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Modulus.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Modulus.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Modulus.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Modulus : CodeNode, INumericalOperator {
@@ -55,5 +55,5 @@
     public override string Interpret(ISymbolicExpressionTreeNode node, IEnumerable<ISymbolicExpressionTreeNode> children) {
       if (children.Count() < 2)
-        throw new ArgumentException("Expected at leaset 2 children.", "children");
+        throw new ArgumentException("Expected at least two children.", "children");
 
       string result = string.Join(" % ", children.Select(c => ((CodeNode)c.Symbol).Interpret(c, c.Subtrees)));
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Multiplication.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Multiplication.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Multiplication.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Multiplication : CodeNode, INumericalOperator {
@@ -55,5 +55,5 @@
     public override string Interpret(ISymbolicExpressionTreeNode node, IEnumerable<ISymbolicExpressionTreeNode> children) {
       if (children.Count() < 2)
-        throw new ArgumentException("Expected at leaset 2 children.", "children");
+        throw new ArgumentException("Expected at least two children.", "children");
 
       string result = string.Join(" * ", children.Select(c => ((CodeNode)c.Symbol).Interpret(c, c.Subtrees)));
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Subtraction.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Subtraction.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/Numerical Operators/Subtraction.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Subtraction : CodeNode, INumericalOperator {
@@ -55,5 +55,5 @@
     public override string Interpret(ISymbolicExpressionTreeNode node, IEnumerable<ISymbolicExpressionTreeNode> children) {
       if (children.Count() < 2)
-        throw new ArgumentException("Expected at leaset 2 children.", "children");
+        throw new ArgumentException("Expected at least two children.", "children");
 
       string result = string.Join(" - ", children.Select(c => ((CodeNode)c.Symbol).Interpret(c, c.Subtrees)));
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/NumericalExpression.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/NumericalExpression.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/NumericalExpression.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class NumericalExpression : CodeNode {
@@ -56,8 +56,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is Number || symbol is INumericalMethod || symbol is INumericalOperator))
-        throw new System.Exception("NumericalExpression was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(Number)
-                                           + " or " + typeof(INumericalMethod)
-                                           + " or " + typeof(INumericalOperator) + ".");
+        throw new InvalidProgramException("NumericalExpression was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type Number or INumericalMethod or INumericalOperator .");
 
       return Prefix + ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees) + Suffix;
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/ShotPower.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/ShotPower.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/ShotPower.cs	(revision 13013)
@@ -26,5 +26,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class ShotPower : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/ShotPowerTreeNode.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/ShotPowerTreeNode.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Expressions/ShotPowerTreeNode.cs	(revision 13013)
@@ -26,5 +26,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class ShotPowerTreeNode : SymbolicExpressionTreeTerminalNode {
@@ -54,5 +54,12 @@
 
     public override void ResetLocalParameters(IRandom random) {
+      // random initialization
       value = Math.Max(0.1, random.NextDouble() * 3);
+    }
+
+    public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
+      // mutation
+      var d = random.NextDouble() * 2.0 - 1.0;
+      value = Math.Max(0.1, value + shakingFactor * d);
     }
   }
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetEnergy.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetEnergy.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetEnergy.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class GetEnergy : CodeNode, INumericalMethod {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetGunHeading.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetGunHeading.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetGunHeading.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class GetGunHeading : CodeNode, INumericalMethod {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetHeading.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetHeading.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetHeading.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class GetHeading : CodeNode, INumericalMethod {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetRadarHeading.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetRadarHeading.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetRadarHeading.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class GetRadarHeading : CodeNode, INumericalMethod {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetX.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetX.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetX.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class GetX : CodeNode, INumericalMethod {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetY.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetY.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/GetY.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class GetY : CodeNode, INumericalMethod {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/INumericalMethod.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/INumericalMethod.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Numerical Methods/INumericalMethod.cs	(revision 13013)
@@ -20,5 +20,5 @@
 #endregion
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   public interface INumericalMethod { }
 }
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Program.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Program.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Program.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Program : Symbol {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Stat.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Stat.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Stat.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Stat : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Statements/IfThenElseStat.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Statements/IfThenElseStat.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Statements/IfThenElseStat.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class IfThenElseStat : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Statements/WhileStat.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Statements/WhileStat.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Statements/WhileStat.cs	(revision 13013)
@@ -26,5 +26,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class WhileStat : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Tank.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Tank.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Tank.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Tank : CodeNode {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/Ahead.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/Ahead.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/Ahead.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Ahead : CodeNode {
@@ -60,6 +60,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is NumericalExpression))
-        throw new Exception("Ahead was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(NumericalExpression) + ".");
+        throw new InvalidProgramException("Ahead was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type NumericalExpression.");
 
       string result = ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees);
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/Back.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/Back.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/Back.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Back : CodeNode {
@@ -60,6 +60,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is NumericalExpression))
-        throw new Exception("Back was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(NumericalExpression) + ".");
+        throw new InvalidProgramException("Back was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type NumericalExpression.");
 
       string result = ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees);
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/DoNothing.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/DoNothing.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/DoNothing.cs	(revision 13013)
@@ -25,5 +25,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class DoNothing : CodeNode {
@@ -41,5 +41,5 @@
     protected DoNothing(DoNothing original, Cloner cloner) : base(original, cloner) { }
 
-    public DoNothing() : base("DoNothing", "Do nothing this turn, meaning that the robot will skip it's turn.") { }
+    public DoNothing() : base("DoNothing", "Do nothing this turn, meaning that the robot will skip its turn.") { }
 
     public override IDeepCloneable Clone(Cloner cloner) {
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/Fire.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/Fire.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/Fire.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class Fire : CodeNode {
@@ -60,6 +60,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is ShotPower))
-        throw new Exception("Fire was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(ShotPower) + ".");
+        throw new InvalidProgramException("Fire was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type ShotPower.");
 
       string result = ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees);
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnGunLeft.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnGunLeft.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnGunLeft.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class TurnGunLeft : CodeNode {
@@ -60,6 +60,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is NumericalExpression))
-        throw new Exception("TurnGunLeft was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(NumericalExpression) + ".");
+        throw new InvalidProgramException("TurGunLeft was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type NumericalExpression.");
 
       string result = ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees);
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnGunRight.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnGunRight.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnGunRight.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class TurnGunRight : CodeNode {
@@ -60,6 +60,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is NumericalExpression))
-        throw new Exception("TurnGunRight was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(NumericalExpression) + ".");
+        throw new InvalidProgramException("TurnGunRight was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type NumericalExpression.");
 
       string result = ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees);
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnLeft.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnLeft.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnLeft.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class TurnLeft : CodeNode {
@@ -60,6 +60,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is NumericalExpression))
-        throw new System.Exception("TurnLeft was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(NumericalExpression) + ".");
+        throw new InvalidProgramException("TurnLeft was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type NumericalExpression.");
 
       string result = ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees);
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnRadarLeft.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnRadarLeft.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnRadarLeft.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class TurnRadarLeft : CodeNode {
@@ -60,6 +60,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is NumericalExpression))
-        throw new Exception("TurnRadarLeft was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(NumericalExpression) + ".");
+        throw new InvalidProgramException("TurnRadarLeft was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type NumericalExpression.");
 
       string result = ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees);
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnRadarRight.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnRadarRight.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnRadarRight.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class TurnRadarRight : CodeNode {
@@ -60,6 +60,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is NumericalExpression))
-        throw new Exception("TurnRadarRight was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(NumericalExpression) + ".");
+        throw new InvalidProgramException("TurnRadarRight was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type NumericalExpression.");
 
       string result = ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees);
Index: /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnRight.cs
===================================================================
--- /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnRight.cs	(revision 13012)
+++ /branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Symbols/Void Methods/TurnRight.cs	(revision 13013)
@@ -27,5 +27,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.GeneticProgramming.RoboCode {
+namespace HeuristicLab.Problems.GeneticProgramming.Robocode {
   [StorableClass]
   public class TurnRight : CodeNode {
@@ -60,6 +60,6 @@
       var symbol = exprTree.Symbol;
       if (!(symbol is NumericalExpression))
-        throw new System.Exception("TurnRight was given a child of type " + symbol.GetType() +
-            ". The expected child must be of type " + typeof(NumericalExpression) + ".");
+        throw new InvalidProgramException("TurnRight was given a child of type " + symbol.GetType() +
+            ". The expected child must be of type NumericalExpression.");
 
       string result = ((CodeNode)symbol).Interpret(exprTree, exprTree.Subtrees);
