Index: /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/Plugin.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/Plugin.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/Plugin.cs	(revision 6412)
@@ -23,5 +23,5 @@
 
 namespace HeuristicLab.Encodings.ScheduleEncoding.Views {
-  [Plugin("HeuristicLab.Encodings.ScheduleEncoding.Views", "3.3.3.0")]
+  [Plugin("HeuristicLab.Encodings.ScheduleEncoding.Views", "3.3.3.6406")]
   [PluginFile("HeuristicLab.Encodings.ScheduleEncoding.Views-3.3.dll", PluginFileType.Assembly)]
   public class HeuristicLabEncodingsScheduleEncodingViewsPlugin : PluginBase {
Index: /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/Properties/AssemblyInfo.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/Properties/AssemblyInfo.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/Properties/AssemblyInfo.cs	(revision 6412)
@@ -55,3 +55,3 @@
 // [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.3.0")]
+[assembly: AssemblyFileVersion("3.3.3.6406")]
Index: /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/ScheduleView.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/ScheduleView.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/ScheduleView.cs	(revision 6412)
@@ -75,5 +75,5 @@
           string categoryName = "ScheduleTasks";
           if (t is ScheduledTask) {
-            categoryNr = ((ScheduledTask)t).JobNr.Value;
+            categoryNr = ((ScheduledTask)t).JobNr;
             categoryName = "Job" + categoryNr;
             toolTip = categoryName + " - " + toolTip;
@@ -82,6 +82,6 @@
           ganttChart.AddData("Resource" + r.Index,
             categoryNr,
-            t.StartTime.Value,
-            t.EndTime.Value,
+            t.StartTime,
+            t.EndTime,
             toolTip);
         }
Index: /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/Plugin.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/Plugin.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/Plugin.cs	(revision 6412)
@@ -23,5 +23,5 @@
 
 namespace HeuristicLab.Encodings.ScheduleEncoding {
-  [Plugin("HeuristicLab.Encodings.ScheduleEncoding", "3.3.3.0")]
+  [Plugin("HeuristicLab.Encodings.ScheduleEncoding", "3.3.3.6406")]
   [PluginFile("HeuristicLab.Encodings.ScheduleEncoding-3.3.dll", PluginFileType.Assembly)]
   public class HeuristicLabEncodingsScheduleEncodingPlugin : PluginBase {
Index: /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/Properties/AssemblyInfo.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/Properties/AssemblyInfo.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/Properties/AssemblyInfo.cs	(revision 6412)
@@ -55,3 +55,3 @@
 // [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.3.0")]
+[assembly: AssemblyFileVersion("3.3.3.6406")]
Index: /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Resource.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Resource.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Resource.cs	(revision 6412)
@@ -23,5 +23,4 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -45,12 +44,12 @@
       set;
     }
-    public DoubleValue TotalDuration {
+    public double TotalDuration {
       get {
         double result = 0;
         foreach (ScheduledTask t in Tasks) {
-          if (t.EndTime.Value > result)
-            result = t.EndTime.Value;
+          if (t.EndTime > result)
+            result = t.EndTime;
         }
-        return new DoubleValue(result);
+        return result;
       }
     }
Index: /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Schedule.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Schedule.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/Schedule.cs	(revision 6412)
@@ -117,7 +117,7 @@
     public void ScheduleTask(int resNr, double startTime, double duration, int jobNr) {
       ScheduledTask task = new ScheduledTask(resNr, startTime, duration, jobNr);
-      Resource affectedResource = resources[task.ResourceNr.Value];
+      Resource affectedResource = resources[task.ResourceNr];
       int i = 0;
-      while (i < affectedResource.Tasks.Count && affectedResource.Tasks[i].StartTime.Value < task.StartTime.Value)
+      while (i < affectedResource.Tasks.Count && affectedResource.Tasks[i].StartTime < task.StartTime)
         i++;
 
@@ -153,6 +153,6 @@
       double quality = 0;
       foreach (Resource r in Resources) {
-        if (r.TotalDuration.Value > quality) {
-          quality = r.TotalDuration.Value;
+        if (r.TotalDuration > quality) {
+          quality = r.TotalDuration;
         }
       }
Index: /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/ScheduledTask.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/ScheduledTask.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Encodings.ScheduleEncoding/3.3/ScheduleEncoding/ScheduledTask.cs	(revision 6412)
@@ -23,5 +23,4 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -32,16 +31,16 @@
     #region Properties
     [Storable]
-    public IntValue ResourceNr { get; set; }
+    public int ResourceNr { get; set; }
     [Storable]
-    public DoubleValue Duration { get; set; }
+    public double Duration { get; set; }
     [Storable]
-    public DoubleValue StartTime { get; set; }
-    public DoubleValue EndTime {
+    public double StartTime { get; set; }
+    public double EndTime {
       get {
-        return new DoubleValue(Duration.Value + StartTime.Value);
+        return Duration + StartTime;
       }
     }
     [Storable]
-    public IntValue JobNr { get; set; }
+    public int JobNr { get; set; }
     #endregion
 
@@ -50,8 +49,8 @@
     protected ScheduledTask(ScheduledTask original, Cloner cloner)
       : base(original, cloner) {
-      this.ResourceNr = cloner.Clone(original.ResourceNr);
-      this.Duration = cloner.Clone(original.Duration);
-      this.StartTime = cloner.Clone(original.StartTime);
-      this.JobNr = cloner.Clone(original.JobNr);
+      this.ResourceNr = original.ResourceNr;
+      this.Duration = original.Duration;
+      this.StartTime = original.StartTime;
+      this.JobNr = original.JobNr;
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -61,8 +60,8 @@
     public ScheduledTask(int resNr, double startTime, double duration, int jobNr)
       : base() {
-      Duration = new DoubleValue(duration);
-      ResourceNr = new IntValue(resNr);
-      StartTime = new DoubleValue(startTime);
-      JobNr = new IntValue(jobNr);
+      Duration = duration;
+      ResourceNr = resNr;
+      StartTime = startTime;
+      JobNr = jobNr;
     }
 
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.cs	(revision 6412)
@@ -24,9 +24,6 @@
 using HeuristicLab.Core;
 using HeuristicLab.Core.Views;
-using HeuristicLab.Data;
 using HeuristicLab.MainForm;
-using HeuristicLab.Parameters;
 using HeuristicLab.PluginInfrastructure;
-using System.Drawing;
 
 namespace HeuristicLab.Problems.Scheduling.Views {
@@ -63,5 +60,5 @@
         double lastEndTime = 0;
         foreach (Task t in content.JobData[jobCount].Tasks) {
-          int categoryNr = t.JobNr.Value;
+          int categoryNr = t.JobNr;
           string categoryName = "Job" + categoryNr;
           ganttChart.AddJobColor(categoryNr);
@@ -69,7 +66,7 @@
             categoryNr,
             lastEndTime + 1,
-            lastEndTime + t.Duration.Value,
-            "Job" + t.JobNr + " - " + "Task#" + t.TaskNr.Value.ToString());
-          lastEndTime += t.Duration.Value;
+            lastEndTime + t.Duration,
+            "Job" + t.JobNr + " - " + "Task#" + t.TaskNr.ToString());
+          lastEndTime += t.Duration;
         }
         jobCount++;
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Plugin.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Plugin.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Plugin.cs	(revision 6412)
@@ -23,5 +23,5 @@
 
 namespace HeuristicLab.Problems.Scheduling.Views {
-  [Plugin("HeuristicLab.Problems.Scheduling.Views", "3.3.3.6364")]
+  [Plugin("HeuristicLab.Problems.Scheduling.Views", "3.3.3.6406")]
   [PluginFile("HeuristicLab.Problems.Scheduling.Views-3.3.dll", PluginFileType.Assembly)]
   public class HeuristicLabProblemsSchedulingViewsPlugin : PluginBase {
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Properties/AssemblyInfo.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Properties/AssemblyInfo.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Properties/AssemblyInfo.cs	(revision 6412)
@@ -53,3 +53,3 @@
 // by using the '*' as shown below:
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.0.6364")]
+[assembly: AssemblyFileVersion("3.3.0.6406")]
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/GTAlgorithmUtils.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/GTAlgorithmUtils.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/GTAlgorithmUtils.cs	(revision 6412)
@@ -31,5 +31,5 @@
       foreach (Job j in jobData) {
         foreach (Task t in j.Tasks) {
-          if (!t.IsScheduled.Value) {
+          if (!t.IsScheduled) {
             result.Add(t);
             break;
@@ -56,5 +56,5 @@
       result.Add(conflictedTask);
       foreach (Task t in earliestTasksList) {
-        if (t.ResourceNr.Value == conflictedTask.ResourceNr.Value) {
+        if (t.ResourceNr == conflictedTask.ResourceNr) {
           if (ComputeEarliestStartTime(t, schedule) < conflictedCompletionTime)
             result.Add(t);
@@ -65,15 +65,15 @@
 
     public static double ComputeEarliestStartTime(Task t, Schedule schedule) {
-      ScheduledTask previousTask = schedule.GetLastScheduledTaskForJobNr(t.JobNr.Value);
-      Resource affectedResource = schedule.Resources[t.ResourceNr.Value];
-      double lastMachineEndTime = affectedResource.TotalDuration.Value;
+      ScheduledTask previousTask = schedule.GetLastScheduledTaskForJobNr(t.JobNr);
+      Resource affectedResource = schedule.Resources[t.ResourceNr];
+      double lastMachineEndTime = affectedResource.TotalDuration;
       double previousJobTaskEndTime = 0;
       if (previousTask != null)
-        previousJobTaskEndTime = previousTask.EndTime.Value;
+        previousJobTaskEndTime = previousTask.EndTime;
 
       return Math.Max(previousJobTaskEndTime, lastMachineEndTime);
     }
     public static double ComputeEarliestCompletionTime(Task t, Schedule schedule) {
-      return ComputeEarliestStartTime(t, schedule) + t.Duration.Value;
+      return ComputeEarliestStartTime(t, schedule) + t.Duration;
     }
   }
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/JSMDecoder.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/JSMDecoder.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/JSMDecoder.cs	(revision 6412)
@@ -86,5 +86,5 @@
       //scan conflictSet for given solutionCandidate, and return if found
       foreach (Task t in conflictSet) {
-        if (t.JobNr.Value == solutionCandidateJobNr)
+        if (t.JobNr == solutionCandidateJobNr)
           return t;
       }
@@ -94,7 +94,7 @@
       int newResolutionIndex = 0;
 
-      while (newResolutionIndex < jsm[conflictedResourceNr].Length && jsm[conflictedResourceNr][newResolutionIndex] != result.JobNr.Value)
+      while (newResolutionIndex < jsm[conflictedResourceNr].Length && jsm[conflictedResourceNr][newResolutionIndex] != result.JobNr)
         newResolutionIndex++;
-      ApplyForcingStrategy(jsm, conflictedResourceNr, newResolutionIndex, progressOnConflictedResource, result.JobNr.Value);
+      ApplyForcingStrategy(jsm, conflictedResourceNr, newResolutionIndex, progressOnConflictedResource, result.JobNr);
 
       return result;
@@ -108,5 +108,5 @@
         for (int i = progress; i < resource.Length; i++) {
           int j = 0;
-          while (j < conflictSet.Count && conflictSet[j].JobNr.Value != resource[i])
+          while (j < conflictSet.Count && conflictSet[j].JobNr != resource[i])
             j++;
 
@@ -145,5 +145,5 @@
       foreach (Job j in jobs) {
         foreach (Task t in j.Tasks) {
-          t.IsScheduled.Value = false;
+          t.IsScheduled = false;
         }
       }
@@ -155,5 +155,5 @@
         //STEP 1 - Get earliest not scheduled operation with minimal earliest completing time
         Task minimal = GTAlgorithmUtils.GetTaskWithMinimalEC(earliestTasksList, resultingSchedule);
-        int conflictedResourceNr = minimal.ResourceNr.Value;
+        int conflictedResourceNr = minimal.ResourceNr;
         Resource conflictedResource = resultingSchedule.Resources[conflictedResourceNr];
 
@@ -166,7 +166,7 @@
 
         //STEP 4 - Add the selected task to the current schedule 
-        selectedTask.IsScheduled.Value = true;
+        selectedTask.IsScheduled = true;
         double startTime = GTAlgorithmUtils.ComputeEarliestStartTime(selectedTask, resultingSchedule);
-        resultingSchedule.ScheduleTask(selectedTask.ResourceNr.Value, startTime, selectedTask.Duration.Value, selectedTask.JobNr.Value);
+        resultingSchedule.ScheduleTask(selectedTask.ResourceNr, startTime, selectedTask.Duration, selectedTask.JobNr);
 
         //STEP 5 - Back to STEP 1
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/PRVDecoder.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/PRVDecoder.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/PRVDecoder.cs	(revision 6412)
@@ -72,5 +72,5 @@
       Task currentResult = RandomRule(tasks);
       foreach (Task t in tasks) {
-        if (t.Duration.Value < currentResult.Duration.Value)
+        if (t.Duration < currentResult.Duration)
           currentResult = t;
       }
@@ -82,5 +82,5 @@
       Task currentResult = RandomRule(tasks);
       foreach (Task t in tasks) {
-        if (t.Duration.Value > currentResult.Duration.Value)
+        if (t.Duration > currentResult.Duration)
           currentResult = t;
       }
@@ -94,7 +94,7 @@
       foreach (Task t in tasks) {
         double remainingProcessingTime = 0;
-        foreach (Task jt in jobs[t.JobNr.Value].Tasks) {
-          if (!jt.IsScheduled.Value)
-            remainingProcessingTime += jt.Duration.Value;
+        foreach (Task jt in jobs[t.JobNr].Tasks) {
+          if (!jt.IsScheduled)
+            remainingProcessingTime += jt.Duration;
         }
         if (remainingProcessingTime > currentLargestRemainingProcessingTime) {
@@ -112,7 +112,7 @@
       foreach (Task t in tasks) {
         double remainingProcessingTime = 0;
-        foreach (Task jt in jobs[t.JobNr.Value].Tasks) {
-          if (!jt.IsScheduled.Value)
-            remainingProcessingTime += jt.Duration.Value;
+        foreach (Task jt in jobs[t.JobNr].Tasks) {
+          if (!jt.IsScheduled)
+            remainingProcessingTime += jt.Duration;
         }
         if (remainingProcessingTime < currentSmallestRemainingProcessingTime) {
@@ -130,6 +130,6 @@
       foreach (Task t in tasks) {
         int nrOfRemainingTasks = 0;
-        foreach (Task jt in jobs[t.JobNr.Value].Tasks) {
-          if (!jt.IsScheduled.Value)
+        foreach (Task jt in jobs[t.JobNr].Tasks) {
+          if (!jt.IsScheduled)
             nrOfRemainingTasks++;
         }
@@ -148,6 +148,6 @@
       foreach (Task t in tasks) {
         int nrOfRemainingTasks = 0;
-        foreach (Task jt in jobs[t.JobNr.Value].Tasks) {
-          if (!jt.IsScheduled.Value)
+        foreach (Task jt in jobs[t.JobNr].Tasks) {
+          if (!jt.IsScheduled)
             nrOfRemainingTasks++;
         }
@@ -218,5 +218,5 @@
       foreach (Job j in jobs) {
         foreach (Task t in j.Tasks) {
-          t.IsScheduled.Value = false;
+          t.IsScheduled = false;
         }
       }
@@ -235,10 +235,10 @@
         //STEP 3 - Select an operation from the conflict set (various methods depending on how the algorithm should work..)
         //Task selectedTask = SelectTaskFromConflictSet(conflictSet, solution.PriorityRulesVector [currentDecisionIndex++], solution.NrOfRules.Value);
-        Task selectedTask = SelectTaskFromConflictSet(conflictSet, solution.PriorityRulesVector[minimal.JobNr.Value], solution.NrOfRules.Value);
+        Task selectedTask = SelectTaskFromConflictSet(conflictSet, solution.PriorityRulesVector[minimal.JobNr], solution.NrOfRules.Value);
 
         //STEP 4 - Adding the selected operation to the current schedule
-        selectedTask.IsScheduled.Value = true;
+        selectedTask.IsScheduled = true;
         double startTime = GTAlgorithmUtils.ComputeEarliestStartTime(selectedTask, resultingSchedule);
-        resultingSchedule.ScheduleTask(selectedTask.ResourceNr.Value, startTime, selectedTask.Duration.Value, selectedTask.JobNr.Value);
+        resultingSchedule.ScheduleTask(selectedTask.ResourceNr, startTime, selectedTask.Duration, selectedTask.JobNr);
 
         //STEP 5 - Back to STEP 1
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/PWRDecoder.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/PWRDecoder.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Decoders/PWRDecoder.cs	(revision 6412)
@@ -60,9 +60,9 @@
       foreach (int jobNr in solution.PermutationWithRepetition) {
         int i = 0;
-        while (jobs[jobNr].Tasks[i].IsScheduled.Value) i++;
+        while (jobs[jobNr].Tasks[i].IsScheduled) i++;
         Task currentTask = jobs[jobNr].Tasks[i];
         double startTime = GTAlgorithmUtils.ComputeEarliestStartTime(currentTask, resultingSchedule);
-        currentTask.IsScheduled.Value = true;
-        resultingSchedule.ScheduleTask(currentTask.ResourceNr.Value, startTime, currentTask.Duration.Value, currentTask.JobNr.Value);
+        currentTask.IsScheduled = true;
+        resultingSchedule.ScheduleTask(currentTask.ResourceNr, startTime, currentTask.Duration, currentTask.JobNr);
       }
       return resultingSchedule;
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MakespanEvaluator.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MakespanEvaluator.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MakespanEvaluator.cs	(revision 6412)
@@ -44,6 +44,6 @@
       DoubleValue quality = new DoubleValue(0);
       foreach (Resource r in schedule.Resources) {
-        if (r.TotalDuration.Value > quality.Value) {
-          quality.Value = r.TotalDuration.Value;
+        if (r.TotalDuration > quality.Value) {
+          quality.Value = r.TotalDuration;
         }
       }
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MeanTardinessEvaluator.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MeanTardinessEvaluator.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MeanTardinessEvaluator.cs	(revision 6412)
@@ -59,5 +59,5 @@
       double totalTardiness = 0;
       foreach (Resource r in schedule.Resources) {
-        double tardiness = r.Tasks[r.Tasks.Count - 1].EndTime.Value - JobData[r.Tasks[r.Tasks.Count - 1].JobNr.Value].DueDate.Value;
+        double tardiness = r.Tasks[r.Tasks.Count - 1].EndTime - JobData[r.Tasks[r.Tasks.Count - 1].JobNr].DueDate;
         if (tardiness > 0)
           totalTardiness += tardiness;
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Job.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Job.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Job.cs	(revision 6412)
@@ -23,15 +23,14 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Problems.Scheduling {
-  [Item("Job Class", "Represents a composition of tasks that require processing in a scheduling problem.")]
+  [Item("Job", "Represents a composition of tasks that require processing in a scheduling problem.")]
   [StorableClass]
   public class Job : Item {
     [Storable]
-    public DoubleValue DueDate { get; set; }
+    public double DueDate { get; set; }
     [Storable]
-    public IntValue Index { get; set; }
+    public int Index { get; set; }
     [Storable]
     public ItemList<Task> Tasks { get; set; }
@@ -41,6 +40,6 @@
     protected Job(Job original, Cloner cloner)
       : base(original, cloner) {
-      this.DueDate = cloner.Clone(original.DueDate);
-      this.Index = cloner.Clone(original.Index);
+      this.DueDate = original.DueDate;
+      this.Index = original.Index;
       this.Tasks = cloner.Clone(original.Tasks);
     }
@@ -48,5 +47,5 @@
       return new Job(this, cloner);
     }
-    public Job(IntValue index, DoubleValue dueDate)
+    public Job(int index, double dueDate)
       : base() {
       Index = index;
@@ -54,7 +53,6 @@
 
       if (dueDate != null)
-        DueDate = (DoubleValue)dueDate.Clone();
-      else
-        DueDate = null;
+        DueDate = dueDate;
+
     }
 
@@ -66,5 +64,5 @@
       }
       if (DueDate != null)
-        sb.Append("{" + DueDate.Value + "} ");
+        sb.Append("{" + DueDate + "} ");
       sb.Append("]");
       return sb.ToString();
@@ -72,8 +70,8 @@
 
     internal Task GetPreviousTask(Task t) {
-      if (t.TaskNr.Value == 0)
+      if (t.TaskNr == 0)
         return null;
       else
-        return Tasks[t.TaskNr.Value - 1];
+        return Tasks[t.TaskNr - 1];
     }
   }
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/JobShopSchedulingProblem.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/JobShopSchedulingProblem.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/JobShopSchedulingProblem.cs	(revision 6412)
@@ -22,4 +22,5 @@
 using System;
 using System.Collections.Generic;
+using System.Drawing;
 using System.IO;
 using HeuristicLab.Common;
@@ -39,5 +40,5 @@
   [Creatable("Problems")]
   [StorableClass]
-  public sealed class JobShopSchedulingProblem : SchedulingProblem {
+  public sealed class JobShopSchedulingProblem : SchedulingProblem, IStorableContent {
     #region Parameter Properties
     public ValueParameter<ItemList<Job>> JobDataParameter {
@@ -87,4 +88,8 @@
       set { DueDatesParameter.Value = value; }
     }
+    public override Image ItemImage {
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Type; }
+    }
+    public string Filename { get; set; }
     #endregion
 
@@ -95,5 +100,5 @@
 
       Parameters.Add(new ValueParameter<IntValue>("Jobs", "The number of jobs used in this JSSP instance.", new IntValue()));
-      Parameters.Add(new ValueParameter<IntValue>("Resources", "The number of resources used this JSSP instance.", new IntValue()));
+      Parameters.Add(new ValueParameter<IntValue>("Resources", "The number of resources used in this JSSP instance.", new IntValue()));
       Parameters.Add(new ValueParameter<BoolValue>("DueDates", "Determines whether the problem instance uses due dates or not.", new BoolValue()));
       Parameters.Add(new ValueParameter<SchedulingEvaluator>("SolutionEvaluator", "The evaluator used to determine the quality of a solution.", new MakespanEvaluator()));
@@ -196,11 +201,11 @@
     }
     private Job CreateJobFromData(List<string> data, int jobCount) {
-      DoubleValue dueDate = null;
+      double dueDate = 0;
       int dataCount = data.Count;
       if (DueDates.Value) {
-        dueDate = new DoubleValue(Double.Parse(data[data.Count - 1]));
+        dueDate = Double.Parse(data[data.Count - 1]);
         dataCount--;
       }
-      Job j = new Job(new IntValue(jobCount), dueDate);
+      Job j = new Job(jobCount, dueDate);
       for (int i = 0; i < dataCount; i++) {
         Task t = new Task(i / 2, Int32.Parse(data[i]), jobCount, Double.Parse(data[i + 1]));
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Plugin.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Plugin.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Plugin.cs	(revision 6412)
@@ -23,5 +23,5 @@
 
 namespace HeuristicLab.Problems.Scheduling {
-  [Plugin("HeuristicLab.Problems.Scheduling", "3.3.3.6364")]
+  [Plugin("HeuristicLab.Problems.Scheduling", "3.3.3.6406")]
   [PluginFile("HeuristicLab.Problems.Scheduling-3.3.dll", PluginFileType.Assembly)]
   public class HeuristicLabProblemsSchedulingPlugin : PluginBase {
Index: /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Task.cs
===================================================================
--- /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Task.cs	(revision 6411)
+++ /branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Task.cs	(revision 6412)
@@ -23,5 +23,4 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -31,13 +30,13 @@
   public class Task : Item {
     [Storable]
-    public IntValue TaskNr { get; set; }
+    public int TaskNr { get; set; }
     [Storable]
-    public IntValue ResourceNr { get; set; }
+    public int ResourceNr { get; set; }
     [Storable]
-    public IntValue JobNr { get; set; }
+    public int JobNr { get; set; }
     [Storable]
-    public DoubleValue Duration { get; set; }
+    public double Duration { get; set; }
     [Storable]
-    public BoolValue IsScheduled { get; set; }
+    public bool IsScheduled { get; set; }
 
     [StorableConstructor]
@@ -45,9 +44,9 @@
     protected Task(Task original, Cloner cloner)
       : base(original, cloner) {
-      this.ResourceNr = cloner.Clone(original.ResourceNr);
-      this.JobNr = cloner.Clone(original.JobNr);
-      this.Duration = cloner.Clone(original.Duration);
-      this.TaskNr = cloner.Clone(original.TaskNr);
-      this.IsScheduled = cloner.Clone(original.IsScheduled);
+      this.ResourceNr = original.ResourceNr;
+      this.JobNr = original.JobNr;
+      this.Duration = original.Duration;
+      this.TaskNr = original.TaskNr;
+      this.IsScheduled = original.IsScheduled;
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -58,9 +57,9 @@
     public Task(int taskNr, int resNr, int jobNr, double duration)
       : base() {
-      Duration = new DoubleValue(duration);
-      ResourceNr = new IntValue(resNr);
-      JobNr = new IntValue(jobNr);
-      TaskNr = new IntValue(taskNr);
-      IsScheduled = new BoolValue(false);
+      Duration = duration;
+      ResourceNr = resNr;
+      JobNr = jobNr;
+      TaskNr = taskNr;
+      IsScheduled = false;
     }
 
