Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveExperiment.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveExperiment.cs	(revision 6426)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveExperiment.cs	(revision 6479)
@@ -21,13 +21,9 @@
 
 using System;
-using System.Collections.Generic;
 using System.ComponentModel;
-using System.Linq;
-using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Core;
 
 namespace HeuristicLab.Clients.Hive {
-  public partial class HiveExperiment : IDeepCloneable, IContent, IProgressReporter {
+  public partial class HiveExperiment : IDeepCloneable, IContent {
 
     private bool isPrivileged;
@@ -37,65 +33,9 @@
     }
 
-    private ExecutionState executionState;
-    public ExecutionState ExecutionState {
-      get { return executionState; }
-      internal set {
-        if (executionState != value) {
-          executionState = value;
-          OnExecutionStateChanged();
-        }
-      }
-    }
-
-    private TimeSpan executionTime;
-    public TimeSpan ExecutionTime {
-      get { return executionTime; }
-      internal set {
-        if (executionTime != value) {
-          executionTime = value;
-          OnExecutionTimeChanged();
-        }
-      }
-    }
-
-    private ItemCollection<HiveJob> hiveJobs;
-    public ItemCollection<HiveJob> HiveJobs {
-      get { return hiveJobs; }
-      set {
-        if (hiveJobs != value) {
-          if (hiveJobs != null) DeregisterHiveJobsEvents();
-          hiveJobs = value;
-          if (hiveJobs != null) RegisterHiveJobsEvents();
-          OnHiveJobsChanged();
-        }
-      }
-    }
-
-    private bool isProgressing;
-    public bool IsProgressing {
-      get { return isProgressing; }
-      set {
-        if (isProgressing != value) {
-          isProgressing = value;
-          OnIsProgressingChanged();
-        }
-      }
-    }
-
-    private IProgress progress;
-    public IProgress Progress {
-      get { return progress; }
-      set { this.progress = value; }
-    }
-
-    public StateLogListList StateLogList {
-      get { return new StateLogListList(this.GetAllHiveJobs().Select(x => x.StateLog)); }
-    }
-
     #region Constructors and Cloning
     public HiveExperiment() {
       this.ResourceNames = "HEAL";
-      this.HiveJobs = new ItemCollection<HiveJob>();
       this.DateCreated = DateTime.Now;
+      this.Permission = Permission.Full;
     }
 
@@ -109,7 +49,6 @@
       this.Description = original.Description;
       this.Id = original.Id;
-      this.HiveJobs = cloner.Clone(original.HiveJobs);
-      this.ExecutionTime = original.ExecutionTime;
       this.IsPrivileged = original.IsPrivileged;
+      this.Permission = original.Permission;
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -119,95 +58,8 @@
 
     #region Events
-    public event EventHandler ExecutionTimeChanged;
-    protected virtual void OnExecutionTimeChanged() {
-      var handler = ExecutionTimeChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler ExecutionStateChanged;
-    protected virtual void OnExecutionStateChanged() {
-      var handler = ExecutionStateChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler HiveJobsChanged;
-    protected virtual void OnHiveJobsChanged() {
-      var handler = HiveJobsChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler IsProgressingChanged;
-    protected virtual void OnIsProgressingChanged() {
-      var handler = IsProgressingChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler Loaded;
-    public virtual void OnLoaded() {
-      var handler = Loaded;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler<CollectionItemsChangedEventArgs<HiveJob>> HiveJobsAdded;
-    private void OnHiveJobsAdded(CollectionItemsChangedEventArgs<HiveJob> e) {
-      var handler = HiveJobsAdded;
-      if (handler != null) handler(this, e);
-    }
-
-    public event EventHandler<CollectionItemsChangedEventArgs<HiveJob>> HiveJobsRemoved;
-    private void OnHiveJobsRemoved(CollectionItemsChangedEventArgs<HiveJob> e) {
-      var handler = HiveJobsRemoved;
-      if (handler != null) handler(this, e);
-    }
-
-    public event EventHandler<CollectionItemsChangedEventArgs<HiveJob>> HiveJobsReset;
-    private void OnHiveJobsReset(CollectionItemsChangedEventArgs<HiveJob> e) {
-      var handler = HiveJobsReset;
-      if (handler != null) handler(this, e);
-    }
-
     public event EventHandler StateLogListChanged;
     private void OnStateLogListChanged() {
       var handler = StateLogListChanged;
       if (handler != null) handler(this, EventArgs.Empty);
-    }
-    #endregion
-
-    #region HiveJobs Events
-    private void RegisterHiveJobsEvents() {
-      this.hiveJobs.ItemsAdded += new CollectionItemsChangedEventHandler<HiveJob>(hiveJobs_ItemsAdded);
-      this.hiveJobs.ItemsRemoved += new CollectionItemsChangedEventHandler<HiveJob>(hiveJobs_ItemsRemoved);
-      this.hiveJobs.CollectionReset += new CollectionItemsChangedEventHandler<HiveJob>(hiveJobs_CollectionReset);
-    }
-
-    private void DeregisterHiveJobsEvents() {
-      this.hiveJobs.ItemsAdded -= new CollectionItemsChangedEventHandler<HiveJob>(hiveJobs_ItemsAdded);
-      this.hiveJobs.ItemsRemoved -= new CollectionItemsChangedEventHandler<HiveJob>(hiveJobs_ItemsRemoved);
-      this.hiveJobs.CollectionReset -= new CollectionItemsChangedEventHandler<HiveJob>(hiveJobs_CollectionReset);
-    }
-
-    private void hiveJobs_CollectionReset(object sender, CollectionItemsChangedEventArgs<HiveJob> e) {
-      foreach (var item in e.Items) {
-        item.StateLogChanged -= new EventHandler(item_StateLogChanged);
-      }
-      OnHiveJobsReset(e);
-    }
-
-    private void hiveJobs_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<HiveJob> e) {
-      foreach (var item in e.Items) {
-        item.StateLogChanged -= new EventHandler(item_StateLogChanged);
-      }
-      OnHiveJobsRemoved(e);
-    }
-
-    private void hiveJobs_ItemsAdded(object sender, CollectionItemsChangedEventArgs<HiveJob> e) {
-      foreach (var item in e.Items) {
-        item.StateLogChanged += new EventHandler(item_StateLogChanged);
-      }
-      OnHiveJobsAdded(e);
-    }
-
-    private void item_StateLogChanged(object sender, EventArgs e) {
-      OnStateLogListChanged();
     }
     #endregion
@@ -229,19 +81,4 @@
     }
 
-    public bool IsFinished() {
-      return HiveJobs != null
-        && HiveJobs.All(x => x.Job.DateFinished.HasValue && x.Job.DateCreated.HasValue);
-    }
-
-    public IEnumerable<HiveJob> GetAllHiveJobs() {
-      if (hiveJobs == null) return Enumerable.Empty<HiveJob>();
-
-      var jobs = new List<HiveJob>();
-      foreach (HiveJob job in HiveJobs) {
-        jobs.AddRange(job.GetAllHiveJobs());
-      }
-      return jobs;
-    }
-
     public override string ToString() {
       return Name;
