Index: /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/HungarianAlgorithm.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/HungarianAlgorithm.cs	(revision 8182)
+++ /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/HungarianAlgorithm.cs	(revision 8183)
@@ -37,5 +37,7 @@
   [Creatable("Algorithms")]
   [StorableClass]
-  public sealed class HungarianAlgorithm : EngineAlgorithm {
+  public sealed class HungarianAlgorithm : EngineAlgorithm, IStorableContent {
+    public string Filename { get; set; }
+
     #region Problem Properties
     public override Type ProblemType {
@@ -68,5 +70,5 @@
     private HungarianAlgorithm(HungarianAlgorithm original, Cloner cloner)
       : base(original, cloner) {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public HungarianAlgorithm()
@@ -83,5 +85,5 @@
 
       UpdateAnalyzers();
-      AttachEventHandlers();
+      RegisterEventHandlers();
 
       Problem = new LinearAssignmentProblem();
@@ -121,5 +123,9 @@
     #region Helpers
     [StorableHook(HookType.AfterDeserialization)]
-    private void AttachEventHandlers() {
+    private void AfterDeserialization() {
+      RegisterEventHandlers();
+    }
+
+    private void RegisterEventHandlers() {
       if (Problem != null) {
         Problem.SolutionCreatorChanged += new EventHandler(Problem_SolutionCreatorChanged);
Index: /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/LAPAssignment.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/LAPAssignment.cs	(revision 8182)
+++ /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/LAPAssignment.cs	(revision 8183)
@@ -30,5 +30,6 @@
   [Item("LAP Assignment", "Represents a solution to the LAP.")]
   [StorableClass]
-  public sealed class LAPAssignment : Item, INotifyPropertyChanged {
+  public sealed class LAPAssignment : Item, INotifyPropertyChanged, IStorableContent {
+    public string Filename { get; set; }
 
     [Storable]
@@ -93,4 +94,6 @@
       costs = cloner.Clone(original.costs);
       assignment = cloner.Clone(original.assignment);
+      rowNames = cloner.Clone(original.rowNames);
+      columnNames = cloner.Clone(original.columnNames);
       quality = cloner.Clone(original.quality);
     }
@@ -117,5 +120,4 @@
     }
 
-
     public event PropertyChangedEventHandler PropertyChanged;
     private void OnPropertyChanged(string propertyName) {
Index: /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/LinearAssignmentProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/LinearAssignmentProblem.cs	(revision 8182)
+++ /trunk/sources/HeuristicLab.Problems.LinearAssignment/3.3/LinearAssignmentProblem.cs	(revision 8183)
@@ -36,8 +36,10 @@
   [Creatable("Problems")]
   [StorableClass]
-  public sealed class LinearAssignmentProblem : SingleObjectiveHeuristicOptimizationProblem<ILAPEvaluator, IPermutationCreator> {
+  public sealed class LinearAssignmentProblem : SingleObjectiveHeuristicOptimizationProblem<ILAPEvaluator, IPermutationCreator>, IStorableContent {
     public static readonly string CostsDescription = "The cost matrix that describes the assignment of rows to columns.";
     public static readonly string RowNamesDescription = "The elements represented by the rows of the costs matrix.";
     public static readonly string ColumnNamesDescription = "The elements represented by the columns of the costs matrix.";
+
+    public string Filename { get; set; }
 
     public override Image ItemImage {
@@ -108,9 +110,9 @@
       ((OptionalValueParameter<StringArray>)ColumnNamesParameter).ReactOnValueToStringChangedAndValueItemImageChanged = false;
 
-      RowNames = new StringArray(new string[] { "Human", "Von Neumann machine", "Quantum computer" });
-      ColumnNames = new StringArray(new string[] { "Find a person's e-mail address", "Compute first 1000 decimals of Pi", "Factorize large integers" });
-      Costs[0, 0] = 1; Costs[0, 1] = 10; Costs[0, 2] = 100;
-      Costs[1, 0] = 10; Costs[1, 1] = 1; Costs[1, 2] = 100;
-      Costs[2, 0] = 100; Costs[2, 1] = 10; Costs[2, 1] = 1;
+      RowNames = new StringArray(new string[] { "Eric", "Robert", "Allison" });
+      ColumnNames = new StringArray(new string[] { "MRI", "Blood test", "Angiogram" });
+      Costs[0, 0] = 4; Costs[0, 1] = 5; Costs[0, 2] = 3;
+      Costs[1, 0] = 6; Costs[1, 1] = 6; Costs[1, 2] = 4;
+      Costs[2, 0] = 5; Costs[2, 1] = 5; Costs[2, 2] = 1;
 
       bestLAPSolutionAnalyzer = new BestLAPSolutionAnalyzer();
