Index: trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MakespanEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MakespanEvaluator.cs	(revision 8757)
+++ trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MakespanEvaluator.cs	(revision 8882)
@@ -20,4 +20,5 @@
 #endregion
 
+using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -41,12 +42,10 @@
     public MakespanEvaluator() : base() { }
 
-    protected override DoubleValue evaluate(Schedule schedule) {
-      DoubleValue quality = new DoubleValue(0);
-      foreach (Resource r in schedule.Resources) {
-        if (r.TotalDuration > quality.Value) {
-          quality.Value = r.TotalDuration;
-        }
-      }
-      return quality;
+    public static double GetMakespan(Schedule schedule) {
+      return schedule.Resources.Select(r => r.TotalDuration).Max();
+    }
+
+    protected override DoubleValue Evaluate(Schedule schedule) {
+      return new DoubleValue(GetMakespan(schedule));
     }
 
Index: trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MeanTardinessEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MeanTardinessEvaluator.cs	(revision 8757)
+++ trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MeanTardinessEvaluator.cs	(revision 8882)
@@ -20,4 +20,6 @@
 #endregion
 
+using System;
+using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -31,9 +33,8 @@
   [StorableClass]
   public class MeanTardinessEvaluator : SchedulingEvaluator, IJSSPOperator {
+
     [StorableConstructor]
     protected MeanTardinessEvaluator(bool deserializing) : base(deserializing) { }
-    protected MeanTardinessEvaluator(MeanTardinessEvaluator original, Cloner cloner)
-      : base(original, cloner) {
-    }
+    protected MeanTardinessEvaluator(MeanTardinessEvaluator original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
       return new MeanTardinessEvaluator(this, cloner);
@@ -45,9 +46,4 @@
     }
     #endregion
-    #region Properties
-    public ItemList<Job> JobData {
-      get { return JobDataParameter.ActualValue; }
-    }
-    #endregion
 
     public MeanTardinessEvaluator()
@@ -56,16 +52,12 @@
     }
 
-    protected override DoubleValue evaluate(Schedule schedule) {
-      double totalTardiness = 0;
-      foreach (Resource r in schedule.Resources) {
-        double tardiness = r.Tasks[r.Tasks.Count - 1].EndTime - JobData[r.Tasks[r.Tasks.Count - 1].JobNr].DueDate;
-        if (tardiness > 0)
-          totalTardiness += tardiness;
-      }
-      return new DoubleValue(totalTardiness / schedule.Resources.Count);
+    public static double GetMeanTardiness(Schedule schedule, ItemList<Job> jobData) {
+      return schedule.Resources
+        .Select(r => Math.Max(0, r.Tasks.Last().EndTime - jobData[r.Tasks.Last().JobNr].DueDate))
+        .Average();
     }
 
-    public override IOperation Apply() {
-      return base.Apply();
+    protected override DoubleValue Evaluate(Schedule schedule) {
+      return new DoubleValue(GetMeanTardiness(schedule, JobDataParameter.ActualValue));
     }
   }
Index: trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs	(revision 8757)
+++ trunk/sources/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs	(revision 8882)
@@ -61,9 +61,9 @@
     }
 
-    protected abstract DoubleValue evaluate(Schedule schedule);
+    protected abstract DoubleValue Evaluate(Schedule schedule);
 
     public override IOperation Apply() {
       Schedule schedule = ScheduleParameter.ActualValue;
-      QualityParameter.ActualValue = evaluate(schedule);
+      QualityParameter.ActualValue = Evaluate(schedule);
       return base.Apply();
     }
