Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/thermal/ThermalInterfaceFactory.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/thermal/ThermalInterfaceFactory.java	(revision 1292)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/thermal/ThermalInterfaceFactory.java	(revision 1317)
@@ -6,5 +6,5 @@
 import schedframe.resources.computing.profiles.energy.thermal.ui.ThermalInterface;
 import schedframe.resources.devices.PhysicalResource;
-import schedframe.resources.devices.PhysicalResourceThermalInterface;
+import schedframe.resources.devices.DeviceThermalInterface;
 
 public class ThermalInterfaceFactory {
@@ -14,11 +14,11 @@
 		ThermalInterface thermalInterface;
 		if (resource.getType().getName().equals(StandardResourceType.CRAH.getName()))
-			thermalInterface = new PhysicalResourceThermalInterface(resource, tp);
+			thermalInterface = new DeviceThermalInterface(resource, tp);
 		else if (resource.getType().getName().equals(StandardResourceType.Fan.getName()))
-			thermalInterface = new PhysicalResourceThermalInterface(resource, tp);
+			thermalInterface = new DeviceThermalInterface(resource, tp);
 		else if(resource.getType().getName().equals(StandardResourceType.Inlet.getName()))
-			thermalInterface = new PhysicalResourceThermalInterface(resource, tp);
+			thermalInterface = new DeviceThermalInterface(resource, tp);
 		else if(resource.getType().getName().equals(StandardResourceType.Outlet.getName()))
-			thermalInterface = new PhysicalResourceThermalInterface(resource, tp);
+			thermalInterface = new DeviceThermalInterface(resource, tp);
 		else 
 			thermalInterface = new ComputingResourceThermalInterface((ComputingResource)resource, tp);
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/coolemall/FanAirThroughputInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/coolemall/FanAirThroughputInterface.java	(revision 1207)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/devices/coolemall/FanAirThroughputInterface.java	(revision 1317)
@@ -4,7 +4,7 @@
 import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
 import schedframe.resources.devices.PhysicalResource;
-import schedframe.resources.devices.PhysicalResourceAirThroughputInterface;
+import schedframe.resources.devices.DeviceAirThroughputInterface;
 
-public class FanAirThroughputInterface extends PhysicalResourceAirThroughputInterface {
+public class FanAirThroughputInterface extends DeviceAirThroughputInterface {
 
 	public FanAirThroughputInterface(PhysicalResource resource, AirThroughputProfile airThroughputProfile) {
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DevicePowerInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DevicePowerInterface.java	(revision 1317)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DevicePowerInterface.java	(revision 1317)
@@ -0,0 +1,101 @@
+package schedframe.resources.devices;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.joda.time.DateTimeUtils;
+
+import schedframe.Parameters;
+import schedframe.resources.computing.profiles.energy.EnergyEvent;
+import schedframe.resources.computing.profiles.energy.EnergyEventType;
+import schedframe.resources.computing.profiles.energy.power.PowerProfile;
+import schedframe.resources.computing.profiles.energy.power.PowerState;
+import schedframe.resources.computing.profiles.energy.power.PowerStateName;
+import schedframe.resources.computing.profiles.energy.power.PowerUsage;
+import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
+import schedframe.resources.computing.profiles.energy.power.ui.PowerInterface;
+
+public class DevicePowerInterface implements PowerInterface{
+	
+	protected PowerStateName currentPowerState;
+	protected PowerProfile powerProfile;
+	protected PhysicalResource resource;
+	
+	public DevicePowerInterface(PhysicalResource resource, PowerProfile powerProfile){
+		this.resource = resource;
+		this.powerProfile = powerProfile;
+		this.currentPowerState = StandardPowerStateName.ON;
+	}
+	
+	public boolean setPowerState(PowerStateName state) {
+		if(supportPowerState(state)){
+			currentPowerState = state;
+
+			resource.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, resource.getFullName()));
+
+			return true;
+		}
+		return false;
+	}
+	
+
+	public PowerStateName getPowerState() {
+		return currentPowerState;
+	}
+
+	public List<PowerState> getSupportedPowerStates() throws NoSuchFieldException {
+		List<PowerState> powerStates = new ArrayList<PowerState>();
+		for(PowerState powerState: powerProfile.getSupportedPowerStates()){
+			powerStates.add(powerState);
+		}
+		return powerStates;
+	}
+
+	public boolean supportPowerState(PowerStateName state) {
+		for(PowerState powerState: powerProfile.getSupportedPowerStates()){
+			if(powerState.getName().equals(state)){
+				return true;
+			}
+		}
+		return false;
+		
+	}
+	
+	public double getPowerConsumption(PowerStateName state) throws NoSuchFieldException {
+		double powerConsumption = 0;
+		if(supportPowerState(state)){
+			for(PowerState powerState: powerProfile.getSupportedPowerStates()){
+				if(powerState.getName().equals(state)){
+					powerConsumption = powerState.getPowerUsage();
+					break;
+				}
+			}
+		} else {
+			throw new NoSuchFieldException("Power state not supported");
+		}
+		return powerConsumption;
+	}
+
+	public PowerUsage getRecentPowerUsage() {
+		PowerUsage powerUsage = null;
+		int lastIdx = getPowerUsageHistory().size() - 1;
+		if(lastIdx >= 0)
+			powerUsage = getPowerUsageHistory().get(lastIdx);
+		else {	
+			try {
+				powerUsage = new PowerUsage(DateTimeUtils.currentTimeMillis(), getPowerConsumption(currentPowerState));
+			} catch (NoSuchFieldException e) {
+			}
+		}
+		return powerUsage;
+	}
+	
+	public List<PowerUsage> getPowerUsageHistory(){
+		return powerProfile.getPowerUsageHistory();
+	}
+	
+	public Parameters getParameters() {
+		return powerProfile.getParameters();
+	}
+
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceThermalInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceThermalInterface.java	(revision 1317)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceThermalInterface.java	(revision 1317)
@@ -0,0 +1,43 @@
+package schedframe.resources.devices;
+
+import java.util.List;
+
+import org.joda.time.DateTimeUtils;
+
+import schedframe.Parameters;
+import schedframe.resources.computing.profiles.energy.thermal.TemperatureValue;
+import schedframe.resources.computing.profiles.energy.thermal.ThermalProfile;
+import schedframe.resources.computing.profiles.energy.thermal.ui.ThermalInterface;
+
+public class DeviceThermalInterface implements ThermalInterface{
+
+	private static int START_TEMP = 0;
+	protected PhysicalResource resource;
+	protected ThermalProfile thermalProfile;
+
+	public DeviceThermalInterface(PhysicalResource resource, ThermalProfile thermalProfile) {
+		super();
+		this.resource = resource;
+		this.thermalProfile = thermalProfile;
+	}
+
+	public TemperatureValue getRecentTemperature() {
+		TemperatureValue temperature = null;
+		int lastIdx = getTemperatureHistory().size() - 1;
+		if(lastIdx >= 0)
+			temperature = getTemperatureHistory().get(lastIdx);
+		else {	
+			temperature = new TemperatureValue(DateTimeUtils.currentTimeMillis(), START_TEMP);
+		}
+		return temperature;
+	}
+
+	public List<TemperatureValue> getTemperatureHistory() {
+		return thermalProfile.getTemperatureHistory();
+	}
+
+	public Parameters getParameters() {
+		return thermalProfile.getParameters();
+	}
+
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/description/PhysicalResourceDescription.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/description/PhysicalResourceDescription.java	(revision 1294)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/devices/description/PhysicalResourceDescription.java	(revision 1317)
@@ -48,4 +48,11 @@
 	}
 
+	public void addChildren(PhysicalResourceDescription child) {
+		super.addChildren(child);
+		if(child.getLoadProfile().getLoadCalendar().getLoadDistribution().size() == 0){
+			child.getLoadProfile().getLoadCalendar().getLoadDistribution().addAll(this.getLoadProfile().getLoadCalendar().getLoadDistribution());
+		}
+	}
+	
 	protected void initProfiles(Profile profile) {
 		if (profile != null) {
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceAirThroughputInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceAirThroughputInterface.java	(revision 1317)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceAirThroughputInterface.java	(revision 1317)
@@ -0,0 +1,111 @@
+package schedframe.resources.devices;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.joda.time.DateTimeUtils;
+
+import schedframe.Parameters;
+import schedframe.resources.computing.profiles.energy.EnergyEvent;
+import schedframe.resources.computing.profiles.energy.EnergyEventType;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirFlowValue;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputProfile;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputState;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirThroughputInterface;
+
+public class DeviceAirThroughputInterface implements AirThroughputInterface{
+
+	protected AirThroughputStateName currentAirThroughputState;
+	protected AirThroughputProfile airThroughputProfile;
+	protected PhysicalResource resource;
+	
+	public DeviceAirThroughputInterface(PhysicalResource resource, AirThroughputProfile airThroughputProfile){
+		this.resource = resource;
+		this.airThroughputProfile = airThroughputProfile;
+		this.currentAirThroughputState = StandardAirThroughputStateName.ON;
+	}
+	
+	public AirThroughputStateName getAirThroughputState() {
+		return currentAirThroughputState;
+	}
+
+	public boolean setAirThroughputState(AirThroughputStateName state) {
+		if(supportAirThroughputState(state)){
+			currentAirThroughputState = state;
+			
+			//TO DO - notifications should be called for all resources starting form the lowest layer
+			resource.handleEvent(new EnergyEvent(EnergyEventType.AIRFLOW_STATE_CHANGED, resource.getFullName()));
+			resource.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, resource.getFullName()));
+			return true;
+		}
+		return false;
+	}
+
+	public boolean supportAirThroughputState(AirThroughputStateName state) {
+		for(AirThroughputState airFlowState: airThroughputProfile.getAirThroughputStates()){
+			if(airFlowState.getName().equals(state.getName())){
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public List<AirThroughputState> getSupportedAirThroughputStates() throws NoSuchFieldException {
+		List<AirThroughputState> airThroughputStates = new ArrayList<AirThroughputState>();
+		for(AirThroughputState airFlowState: airThroughputProfile.getAirThroughputStates()){
+			airThroughputStates.add(airFlowState);
+		}
+		return airThroughputStates;
+	}
+
+	public double getAirFlow(AirThroughputStateName state) throws NoSuchFieldException {
+		double airThroughput = 0;
+		if(supportAirThroughputState(state)){
+			for(AirThroughputState airFlowState: airThroughputProfile.getAirThroughputStates()){
+				if(airFlowState.getName().equals(state.getName())){
+					airThroughput = airFlowState.getValue();
+					break;
+				}
+			}
+		}
+		return airThroughput;
+	}
+
+	public double getPowerConsumption(AirThroughputStateName state) throws NoSuchFieldException {
+		double powerConsumption = 0;
+		if(supportAirThroughputState(state)){
+			for(AirThroughputState airFlowState: airThroughputProfile.getAirThroughputStates()){
+				if(airFlowState.getName().equals(state.getName())){
+					powerConsumption = airFlowState.getPowerUsage();
+					break;
+				}
+			}
+		}
+		return powerConsumption;
+	}
+	
+	public AirFlowValue getRecentAirFlow() {
+		AirFlowValue airFlow = null;
+		int lastIdx = getAirFlowHistory().size() - 1;
+		if(lastIdx >= 0)
+			airFlow = getAirFlowHistory().get(lastIdx);
+		else {	
+			try {
+				airFlow = new AirFlowValue(DateTimeUtils.currentTimeMillis(), getAirFlow(currentAirThroughputState));
+			} catch (NoSuchFieldException e) {
+			}
+		}
+		return airFlow;
+	}
+	
+	public List<AirFlowValue> getAirFlowHistory(){
+		return airThroughputProfile.getAirThroughputHistory();
+	}
+	
+	public Parameters getParameters() {
+		return airThroughputProfile.getParameters();
+	}
+
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResourcePowerInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResourcePowerInterface.java	(revision 1207)
+++ 	(revision )
@@ -1,101 +1,0 @@
-package schedframe.resources.devices;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.joda.time.DateTimeUtils;
-
-import schedframe.Parameters;
-import schedframe.resources.computing.profiles.energy.EnergyEvent;
-import schedframe.resources.computing.profiles.energy.EnergyEventType;
-import schedframe.resources.computing.profiles.energy.power.PowerProfile;
-import schedframe.resources.computing.profiles.energy.power.PowerState;
-import schedframe.resources.computing.profiles.energy.power.PowerStateName;
-import schedframe.resources.computing.profiles.energy.power.PowerUsage;
-import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
-import schedframe.resources.computing.profiles.energy.power.ui.PowerInterface;
-
-public class PhysicalResourcePowerInterface implements PowerInterface{
-
-	protected PowerStateName currentPowerState;
-	protected PowerProfile powerProfile;
-	protected PhysicalResource resource;
-	
-	public PhysicalResourcePowerInterface(PhysicalResource resource, PowerProfile powerProfile){
-		this.resource = resource;
-		this.powerProfile = powerProfile;
-		this.currentPowerState = StandardPowerStateName.ON;
-	}
-	
-	public boolean setPowerState(PowerStateName state) {
-		if(supportPowerState(state)){
-			currentPowerState = state;
-
-			resource.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, resource.getFullName()));
-
-			return true;
-		}
-		return false;
-	}
-	
-
-	public PowerStateName getPowerState() {
-		return currentPowerState;
-	}
-
-	public List<PowerState> getSupportedPowerStates() throws NoSuchFieldException {
-		List<PowerState> powerStates = new ArrayList<PowerState>();
-		for(PowerState powerState: powerProfile.getSupportedPowerStates()){
-			powerStates.add(powerState);
-		}
-		return powerStates;
-	}
-
-	public boolean supportPowerState(PowerStateName state) {
-		for(PowerState powerState: powerProfile.getSupportedPowerStates()){
-			if(powerState.getName().equals(state)){
-				return true;
-			}
-		}
-		return false;
-		
-	}
-	
-	public double getPowerConsumption(PowerStateName state) throws NoSuchFieldException {
-		double powerConsumption = 0;
-		if(supportPowerState(state)){
-			for(PowerState powerState: powerProfile.getSupportedPowerStates()){
-				if(powerState.getName().equals(state)){
-					powerConsumption = powerState.getPowerUsage();
-					break;
-				}
-			}
-		} else {
-			throw new NoSuchFieldException("Power state not supported");
-		}
-		return powerConsumption;
-	}
-
-	public PowerUsage getRecentPowerUsage() {
-		PowerUsage powerUsage = null;
-		int lastIdx = getPowerUsageHistory().size() - 1;
-		if(lastIdx >= 0)
-			powerUsage = getPowerUsageHistory().get(lastIdx);
-		else {	
-			try {
-				powerUsage = new PowerUsage(DateTimeUtils.currentTimeMillis(), getPowerConsumption(currentPowerState));
-			} catch (NoSuchFieldException e) {
-			}
-		}
-		return powerUsage;
-	}
-	
-	public List<PowerUsage> getPowerUsageHistory(){
-		return powerProfile.getPowerUsageHistory();
-	}
-	
-	public Parameters getParameters() {
-		return powerProfile.getParameters();
-	}
-
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResourceThermalInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResourceThermalInterface.java	(revision 1207)
+++ 	(revision )
@@ -1,43 +1,0 @@
-package schedframe.resources.devices;
-
-import java.util.List;
-
-import org.joda.time.DateTimeUtils;
-
-import schedframe.Parameters;
-import schedframe.resources.computing.profiles.energy.thermal.TemperatureValue;
-import schedframe.resources.computing.profiles.energy.thermal.ThermalProfile;
-import schedframe.resources.computing.profiles.energy.thermal.ui.ThermalInterface;
-
-public class PhysicalResourceThermalInterface implements ThermalInterface{
-
-	private static int START_TEMP = 0;
-	protected PhysicalResource resource;
-	protected ThermalProfile thermalProfile;
-
-	public PhysicalResourceThermalInterface(PhysicalResource resource, ThermalProfile thermalProfile) {
-		super();
-		this.resource = resource;
-		this.thermalProfile = thermalProfile;
-	}
-
-	public TemperatureValue getRecentTemperature() {
-		TemperatureValue temperature = null;
-		int lastIdx = getTemperatureHistory().size() - 1;
-		if(lastIdx >= 0)
-			temperature = getTemperatureHistory().get(lastIdx);
-		else {	
-			temperature = new TemperatureValue(DateTimeUtils.currentTimeMillis(), START_TEMP);
-		}
-		return temperature;
-	}
-
-	public List<TemperatureValue> getTemperatureHistory() {
-		return thermalProfile.getTemperatureHistory();
-	}
-
-	public Parameters getParameters() {
-		return thermalProfile.getParameters();
-	}
-
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResourceAirThroughputInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResourceAirThroughputInterface.java	(revision 1207)
+++ 	(revision )
@@ -1,111 +1,0 @@
-package schedframe.resources.devices;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.joda.time.DateTimeUtils;
-
-import schedframe.Parameters;
-import schedframe.resources.computing.profiles.energy.EnergyEvent;
-import schedframe.resources.computing.profiles.energy.EnergyEventType;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirFlowValue;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputProfile;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputState;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputStateName;
-import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirThroughputStateName;
-import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirThroughputInterface;
-
-public class PhysicalResourceAirThroughputInterface implements AirThroughputInterface{
-
-	protected AirThroughputStateName currentAirThroughputState;
-	protected AirThroughputProfile airThroughputProfile;
-	protected PhysicalResource resource;
-	
-	public PhysicalResourceAirThroughputInterface(PhysicalResource resource, AirThroughputProfile airThroughputProfile){
-		this.resource = resource;
-		this.airThroughputProfile = airThroughputProfile;
-		this.currentAirThroughputState = StandardAirThroughputStateName.ON;
-	}
-	
-	public AirThroughputStateName getAirThroughputState() {
-		return currentAirThroughputState;
-	}
-
-	public boolean setAirThroughputState(AirThroughputStateName state) {
-		if(supportAirThroughputState(state)){
-			currentAirThroughputState = state;
-			
-			//TO DO - notifications should be called for all resources starting form the lowest layer
-			resource.handleEvent(new EnergyEvent(EnergyEventType.AIRFLOW_STATE_CHANGED, resource.getFullName()));
-			resource.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, resource.getFullName()));
-			return true;
-		}
-		return false;
-	}
-
-	public boolean supportAirThroughputState(AirThroughputStateName state) {
-		for(AirThroughputState airFlowState: airThroughputProfile.getAirThroughputStates()){
-			if(airFlowState.getName().equals(state.getName())){
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public List<AirThroughputState> getSupportedAirThroughputStates() throws NoSuchFieldException {
-		List<AirThroughputState> airThroughputStates = new ArrayList<AirThroughputState>();
-		for(AirThroughputState airFlowState: airThroughputProfile.getAirThroughputStates()){
-			airThroughputStates.add(airFlowState);
-		}
-		return airThroughputStates;
-	}
-
-	public double getAirFlow(AirThroughputStateName state) throws NoSuchFieldException {
-		double airThroughput = 0;
-		if(supportAirThroughputState(state)){
-			for(AirThroughputState airFlowState: airThroughputProfile.getAirThroughputStates()){
-				if(airFlowState.getName().equals(state.getName())){
-					airThroughput = airFlowState.getValue();
-					break;
-				}
-			}
-		}
-		return airThroughput;
-	}
-
-	public double getPowerConsumption(AirThroughputStateName state) throws NoSuchFieldException {
-		double powerConsumption = 0;
-		if(supportAirThroughputState(state)){
-			for(AirThroughputState airFlowState: airThroughputProfile.getAirThroughputStates()){
-				if(airFlowState.getName().equals(state.getName())){
-					powerConsumption = airFlowState.getPowerUsage();
-					break;
-				}
-			}
-		}
-		return powerConsumption;
-	}
-	
-	public AirFlowValue getRecentAirFlow() {
-		AirFlowValue airFlow = null;
-		int lastIdx = getAirFlowHistory().size() - 1;
-		if(lastIdx >= 0)
-			airFlow = getAirFlowHistory().get(lastIdx);
-		else {	
-			try {
-				airFlow = new AirFlowValue(DateTimeUtils.currentTimeMillis(), getAirFlow(currentAirThroughputState));
-			} catch (NoSuchFieldException e) {
-			}
-		}
-		return airFlow;
-	}
-	
-	public List<AirFlowValue> getAirFlowHistory(){
-		return airThroughputProfile.getAirThroughputHistory();
-	}
-	
-	public Parameters getParameters() {
-		return airThroughputProfile.getParameters();
-	}
-
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceHistoryItem.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceHistoryItem.java	(revision 1207)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceHistoryItem.java	(revision 1317)
@@ -13,4 +13,5 @@
 	protected Map<ResourceUnitName, ResourceUnit> usedResources;
 	protected DateTime timeStamp;
+	protected double completionPercentage;
 	
 	/**
@@ -31,4 +32,12 @@
 		return timeStamp;
 	}
+
+	public double getCompletionPercentage() {
+		return completionPercentage;
+	}
+
+	public void setCompletionPercentage(double completionPercentage) {
+		this.completionPercentage = completionPercentage;
+	}
 	
 }
