Index: /trunk/sources/HeuristicLab.SGA/SGA.cs
===================================================================
--- /trunk/sources/HeuristicLab.SGA/SGA.cs	(revision 64)
+++ /trunk/sources/HeuristicLab.SGA/SGA.cs	(revision 65)
@@ -56,6 +56,7 @@
       sp.AddSubOperator(co1);
 
-      // place holder for Problem Initializer
+      // place holder for ProblemInjector
       EmptyOperator eo1 = new EmptyOperator();
+      eo1.Name = "ProblemInjector";
       op.OperatorGraph.AddOperator(eo1);
       co1.AddSubOperator(eo1);
@@ -66,6 +67,7 @@
       sp.AddSubOperator(co2);
 
-      // place holder for Solution Generator
+      // place holder for SolutionGenerator
       EmptyOperator eo2 = new EmptyOperator();
+      eo2.Name = "SolutionGenerator";
       op.OperatorGraph.AddOperator(eo2);
       co2.AddSubOperator(eo2);
@@ -73,4 +75,5 @@
       // place holder for Evaluator
       EmptyOperator eo3 = new EmptyOperator();
+      eo3.Name = "Evaluator";
       op.OperatorGraph.AddOperator(eo3);
       co2.AddSubOperator(eo3);
@@ -83,4 +86,5 @@
       // place holder for Selector
       EmptyOperator eo4 = new EmptyOperator();
+      eo4.Name = "Selector";
       op.OperatorGraph.AddOperator(eo4);
       co3.AddSubOperator(eo4);
@@ -88,4 +92,5 @@
       // place holder for Crossover
       EmptyOperator eo5 = new EmptyOperator();
+      eo5.Name = "Crossover";
       op.OperatorGraph.AddOperator(eo5);
       co3.AddSubOperator(eo5);
@@ -93,4 +98,5 @@
       // place holder for Mutator
       EmptyOperator eo6 = new EmptyOperator();
+      eo6.Name = "Mutator";
       op.OperatorGraph.AddOperator(eo6);
       co3.AddSubOperator(eo6);
@@ -112,6 +118,6 @@
 
       OperatorExtractor oe = new OperatorExtractor();
-      oe.Name = "Problem Initializer";
-      oe.GetVariable("Name").GetValue<StringData>().Data = "ProblemInitializer";
+      oe.Name = "ProblemInjector";
+      oe.GetVariableInfo("Operator").ActualName = "ProblemInjector";
       op.OperatorGraph.AddOperator(oe);
       sp.AddSubOperator(oe);
@@ -128,7 +134,4 @@
       sp.AddSubOperator(vi);
 
-      op.GetVariable("InjectSubOperators").GetValue<BoolData>().Data = true;
-      op.GetVariable("SubOperatorNames").GetValue<ItemList>().Add(new StringData("ProblemInitializer"));
-
       return op;
     }
@@ -153,6 +156,6 @@
 
       OperatorExtractor oe1 = new OperatorExtractor();
-      oe1.Name = "Solution Generator";
-      oe1.GetVariable("Name").GetValue<StringData>().Data = "SolutionGenerator";
+      oe1.Name = "SolutionGenerator";
+      oe1.GetVariableInfo("Operator").ActualName = "SolutionGenerator";
       op.OperatorGraph.AddOperator(oe1);
       sp2.AddSubOperator(oe1);
@@ -160,5 +163,5 @@
       OperatorExtractor oe2 = new OperatorExtractor();
       oe2.Name = "Evaluator";
-      oe2.GetVariable("Name").GetValue<StringData>().Data = "Evaluator";
+      oe2.GetVariableInfo("Operator").ActualName = "Evaluator";
       op.OperatorGraph.AddOperator(oe2);
       sp2.AddSubOperator(oe2);
@@ -175,8 +178,4 @@
       sp1.AddSubOperator(s);
 
-      op.GetVariable("InjectSubOperators").GetValue<BoolData>().Data = true;
-      op.GetVariable("SubOperatorNames").GetValue<ItemList>().Add(new StringData("SolutionGenerator"));
-      op.GetVariable("SubOperatorNames").GetValue<ItemList>().Add(new StringData("Evaluator"));
-
       return op;
     }
@@ -189,5 +188,5 @@
       OperatorExtractor oe = new OperatorExtractor();
       oe.Name = "Selector";
-      oe.GetVariable("Name").GetValue<StringData>().Data = "Selector";
+      oe.GetVariableInfo("Operator").ActualName = "Selector";
       op.OperatorGraph.AddOperator(oe);
       sp.AddSubOperator(oe);
@@ -220,5 +219,5 @@
 
       DataCollector dc = new DataCollector();
-      ItemList names = dc.GetVariable("VariableNames").GetValue<ItemList>();
+      ItemList<StringData> names = dc.GetVariable("VariableNames").GetValue<ItemList<StringData>>();
       names.Add(new StringData("BestQuality"));
       names.Add(new StringData("AverageQuality"));
@@ -252,10 +251,4 @@
       cb.AddSubOperator(sp);
 
-      op.GetVariable("InjectSubOperators").GetValue<BoolData>().Data = true;
-      op.GetVariable("SubOperatorNames").GetValue<ItemList>().Add(new StringData("Selector"));
-      op.GetVariable("SubOperatorNames").GetValue<ItemList>().Add(new StringData("Crossover"));
-      op.GetVariable("SubOperatorNames").GetValue<ItemList>().Add(new StringData("Mutator"));
-      op.GetVariable("SubOperatorNames").GetValue<ItemList>().Add(new StringData("Evaluator"));
-
       return op;
     }
@@ -268,5 +261,5 @@
       OperatorExtractor oe1 = new OperatorExtractor();
       oe1.Name = "Crossover";
-      oe1.GetVariable("Name").GetValue<StringData>().Data = "Crossover";
+      oe1.GetVariableInfo("Operator").ActualName = "Crossover";
       op.OperatorGraph.AddOperator(oe1);
       sp1.AddSubOperator(oe1);
@@ -287,5 +280,5 @@
       OperatorExtractor oe2 = new OperatorExtractor();
       oe2.Name = "Mutator";
-      oe2.GetVariable("Name").GetValue<StringData>().Data = "Mutator";
+      oe2.GetVariableInfo("Operator").ActualName = "Mutator";
       op.OperatorGraph.AddOperator(oe2);
       hb.AddSubOperator(oe2);
@@ -293,5 +286,5 @@
       OperatorExtractor oe3 = new OperatorExtractor();
       oe3.Name = "Evaluator";
-      oe3.GetVariable("Name").GetValue<StringData>().Data = "Evaluator";
+      oe3.GetVariableInfo("Operator").ActualName = "Evaluator";
       op.OperatorGraph.AddOperator(oe3);
       sp2.AddSubOperator(oe3);
@@ -401,8 +394,9 @@
     private CombinedOperator mySGA;
     private IOperator myVariableInjection;
-    public IOperator ProblemInitializer {
+    public IOperator ProblemInjector {
       get { return myVariableInjection.SubOperators[0]; }
       set {
-        mySGA.OperatorGraph.RemoveOperator(ProblemInitializer.Guid);
+        value.Name = "ProblemInjector";
+        mySGA.OperatorGraph.RemoveOperator(ProblemInjector.Guid);
         mySGA.OperatorGraph.AddOperator(value);
         myVariableInjection.AddSubOperator(value, 0);
@@ -413,4 +407,5 @@
       get { return myPopulationInitialization.SubOperators[0]; }
       set {
+        value.Name = "SolutionGenerator";
         mySGA.OperatorGraph.RemoveOperator(SolutionGenerator.Guid);
         mySGA.OperatorGraph.AddOperator(value);
@@ -421,4 +416,5 @@
       get { return myPopulationInitialization.SubOperators[1]; }
       set {
+        value.Name = "Evaluator";
         mySGA.OperatorGraph.RemoveOperator(Evaluator.Guid);
         mySGA.OperatorGraph.AddOperator(value);
@@ -431,4 +427,5 @@
       get { return mySGAMain.SubOperators[0]; }
       set {
+        value.Name = "Selector";
         mySGA.OperatorGraph.RemoveOperator(Selector.Guid);
         mySGA.OperatorGraph.AddOperator(value);
@@ -439,4 +436,5 @@
       get { return mySGAMain.SubOperators[1]; }
       set {
+        value.Name = "Crossover";
         mySGA.OperatorGraph.RemoveOperator(Crossover.Guid);
         mySGA.OperatorGraph.AddOperator(value);
@@ -447,4 +445,5 @@
       get { return mySGAMain.SubOperators[2]; }
       set {
+        value.Name = "Mutator";
         mySGA.OperatorGraph.RemoveOperator(Mutator.Guid);
         mySGA.OperatorGraph.AddOperator(value);
Index: /trunk/sources/HeuristicLab.SGA/SGAEditor.cs
===================================================================
--- /trunk/sources/HeuristicLab.SGA/SGAEditor.cs	(revision 64)
+++ /trunk/sources/HeuristicLab.SGA/SGAEditor.cs	(revision 65)
@@ -67,10 +67,10 @@
       } else {
         tabControl.Enabled = true;
-        problemInitializationTextBox.Text = SGA.ProblemInitializer.Name;
-        solutionGenerationTextBox.Text = SGA.SolutionGenerator.Name;
-        selectionTextBox.Text = SGA.Selector.Name;
-        crossoverTextBox.Text = SGA.Crossover.Name;
-        mutationTextBox.Text = SGA.Mutator.Name;
-        evaluationTextBox.Text = SGA.Evaluator.Name;
+        problemInitializationTextBox.Text = SGA.ProblemInjector.GetType().Name;
+        solutionGenerationTextBox.Text = SGA.SolutionGenerator.GetType().Name;
+        selectionTextBox.Text = SGA.Selector.GetType().Name;
+        crossoverTextBox.Text = SGA.Crossover.GetType().Name;
+        mutationTextBox.Text = SGA.Mutator.GetType().Name;
+        evaluationTextBox.Text = SGA.Evaluator.GetType().Name;
       }
     }
@@ -87,5 +87,5 @@
     #region Button Events
     private void viewProblemInitializationButton_Click(object sender, EventArgs e) {
-      IView view = SGA.ProblemInitializer.CreateView();
+      IView view = SGA.ProblemInjector.CreateView();
       if (view != null)
         PluginManager.ControlManager.ShowControl(view);
@@ -119,6 +119,6 @@
       if (chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
       if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
-        SGA.ProblemInitializer = chooseOperatorDialog.Operator;
-        problemInitializationTextBox.Text = SGA.ProblemInitializer.Name;
+        SGA.ProblemInjector = chooseOperatorDialog.Operator;
+        problemInitializationTextBox.Text = SGA.ProblemInjector.GetType().Name;
       }
     }
@@ -127,5 +127,5 @@
       if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
         SGA.SolutionGenerator= chooseOperatorDialog.Operator;
-        solutionGenerationTextBox.Text = SGA.SolutionGenerator.Name;
+        solutionGenerationTextBox.Text = SGA.SolutionGenerator.GetType().Name;
       }
     }
@@ -134,5 +134,5 @@
       if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
         SGA.Selector = chooseOperatorDialog.Operator;
-        selectionTextBox.Text = SGA.Selector.Name;
+        selectionTextBox.Text = SGA.Selector.GetType().Name;
       }
     }
@@ -141,5 +141,5 @@
       if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
         SGA.Crossover = chooseOperatorDialog.Operator;
-        crossoverTextBox.Text = SGA.Crossover.Name;
+        crossoverTextBox.Text = SGA.Crossover.GetType().Name;
       }
     }
@@ -148,5 +148,5 @@
       if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
         SGA.Mutator = chooseOperatorDialog.Operator;
-        mutationTextBox.Text = SGA.Mutator.Name;
+        mutationTextBox.Text = SGA.Mutator.GetType().Name;
       }
     }
@@ -155,5 +155,5 @@
       if (chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
         SGA.Evaluator = chooseOperatorDialog.Operator;
-        evaluationTextBox.Text = SGA.Evaluator.Name;
+        evaluationTextBox.Text = SGA.Evaluator.GetType().Name;
       }
     }
