Index: DCWoRMS/branches/coolemall/src/example/globalplugin/GridFCFSLoadBalancingPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/globalplugin/GridFCFSLoadBalancingPlugin.java	(revision 497)
+++ DCWoRMS/branches/coolemall/src/example/globalplugin/GridFCFSLoadBalancingPlugin.java	(revision 1396)
@@ -3,5 +3,4 @@
 
 import java.util.List;
-import java.util.Properties;
 
 import org.apache.commons.logging.Log;
@@ -16,6 +15,6 @@
 import schedframe.scheduling.plan.impl.ScheduledTask;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.Module;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.Module;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.plugin.grid.ResourceDiscovery;
 import schedframe.scheduling.queue.QueueDescription;
Index: DCWoRMS/branches/coolemall/src/example/globalplugin/GridFCFSRandomPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/globalplugin/GridFCFSRandomPlugin.java	(revision 497)
+++ DCWoRMS/branches/coolemall/src/example/globalplugin/GridFCFSRandomPlugin.java	(revision 1396)
@@ -2,5 +2,4 @@
 
 import java.util.List;
-import java.util.Properties;
 import java.util.Random;
 
@@ -13,6 +12,6 @@
 import schedframe.scheduling.plan.impl.ScheduledTask;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.Module;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.Module;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.plugin.grid.ResourceDiscovery;
 import schedframe.scheduling.queue.TaskQueue;
@@ -29,5 +28,5 @@
 	}
 	
-	public SchedulingPlanInterface schedule(SchedulingEvent event,
+	public SchedulingPlanInterface<?> schedule(SchedulingEvent event,
 			TaskQueueList queues, 
 			JobRegistry jobRegistry,
Index: DCWoRMS/branches/coolemall/src/example/globalplugin/GridFCFSRoundRobinPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/globalplugin/GridFCFSRoundRobinPlugin.java	(revision 497)
+++ DCWoRMS/branches/coolemall/src/example/globalplugin/GridFCFSRoundRobinPlugin.java	(revision 1396)
@@ -12,6 +12,6 @@
 import schedframe.scheduling.plan.impl.ScheduledTask;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.Module;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.Module;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.plugin.grid.ResourceDiscovery;
 import schedframe.scheduling.queue.TaskQueue;
@@ -24,5 +24,5 @@
 	private LinkedList<String> lastUsedResources = new LinkedList<String>();
 
-	public SchedulingPlanInterface schedule(SchedulingEvent event,
+	public SchedulingPlanInterface<?> schedule(SchedulingEvent event,
 			TaskQueueList queues, 
 			JobRegistry jobRegistry,
Index: DCWoRMS/branches/coolemall/src/example/globalplugin/BaseGlobalPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/globalplugin/BaseGlobalPlugin.java	(revision 516)
+++ DCWoRMS/branches/coolemall/src/example/globalplugin/BaseGlobalPlugin.java	(revision 1396)
@@ -6,7 +6,7 @@
 import schedframe.scheduling.TaskList;
 import schedframe.scheduling.manager.resources.ResourceManager;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.plugin.SchedulingPluginConfiguration;
 import schedframe.scheduling.plugin.grid.GlobalSchedulingPlugin;
-import schedframe.scheduling.plugin.grid.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
Index: DCWoRMS/branches/coolemall/src/example/load/DefaultLoadEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/load/DefaultLoadEstimationPlugin.java	(revision 1290)
+++ DCWoRMS/branches/coolemall/src/example/load/DefaultLoadEstimationPlugin.java	(revision 1396)
@@ -5,5 +5,5 @@
 import schedframe.resources.devices.PhysicalResource;
 import schedframe.scheduling.manager.tasks.JobRegistry;
-import simulator.stats.GSSAccumulator;
+import simulator.stats.DCwormsAccumulator;
 
 
@@ -13,5 +13,5 @@
 
 		ComputingResource computingResource = (ComputingResource) resource;
-		GSSAccumulator childrenLoad = new GSSAccumulator();
+		DCwormsAccumulator childrenLoad = new DCwormsAccumulator();
 		for(ComputingResource compRes: computingResource.getChildren()){
 			childrenLoad.add(compRes.getLoadInterface().getRecentUtilization().getValue());
Index: DCWoRMS/branches/coolemall/src/example/load/ProcessorLoadEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/load/ProcessorLoadEstimationPlugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/load/ProcessorLoadEstimationPlugin.java	(revision 1396)
@@ -26,5 +26,5 @@
 			double cpuUsage = 1 / nrOfThreadsOnCpu;
 
-			for(PhaseBehaviour pb: task.getCurrentResourceConsumption().getBehaviourList()){
+			for(PhaseBehaviour pb: task.getExecutionProfile().getCurrentResourceConsumption().getBehaviourList()){
 				if(pb.getResouceName().equals("PM_CPU_Usage")){
 					cpuUsage = pb.getUtilization();
Index: DCWoRMS/branches/coolemall/src/example/energy/coolemall/FanEnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/coolemall/FanEnergyEstimationPlugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/energy/coolemall/FanEnergyEstimationPlugin.java	(revision 1396)
@@ -21,5 +21,5 @@
 		Fan fan = (Fan) resource;
 		try {
-			powerConsumption = fan.getAirThroughputInterface().getPowerConsumption(fan.getAirThroughputInterface().getAirThroughputState());
+			powerConsumption = fan.getAirflowInterface().getPowerConsumption(fan.getAirflowInterface().getAirflowState());
 		} catch (NoSuchFieldException e) {
 			// TODO Auto-generated catch block
@@ -35,13 +35,13 @@
 	}
 	
-	public double estimateAirThroughput(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
+	public double estimateAirflow(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
 		
-		double airThroughput = 0;
+		double airflow = 0;
 		Fan fan = (Fan) resource;
 		try {
 			if(event.getReason() == EventReason.SIM_INIT)
-				airThroughput = fan.getAirThroughputInterface().getAirFlow(fan.getAirThroughputInterface().getAirThroughputState());
+				airflow = fan.getAirflowInterface().getAirflow(fan.getAirflowInterface().getAirflowState());
 			else
-				airThroughput = fan.getAirThroughputInterface().getAirFlow(fan.getAirThroughputInterface().getAirThroughputState());
+				airflow = fan.getAirflowInterface().getAirflow(fan.getAirflowInterface().getAirflowState());
 		} catch (NoSuchFieldException e) {
 			// TODO Auto-generated catch block
@@ -65,5 +65,5 @@
 
 		
-		return airThroughput * getNumberOfWorkingNodes(fan)/(double)fan.getChilledResources().size();
+		return airflow * getNumberOfWorkingNodes(fan)/(double)fan.getChilledResources().size();
 	}
 	
Index: DCWoRMS/branches/coolemall/src/example/energy/coolemall/CB1EnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/coolemall/CB1EnergyEstimationPlugin.java	(revision 1329)
+++ DCWoRMS/branches/coolemall/src/example/energy/coolemall/CB1EnergyEstimationPlugin.java	(revision 1396)
@@ -11,5 +11,5 @@
 import schedframe.resources.computing.coolemall.NodeGroup;
 import schedframe.resources.computing.profiles.energy.EnergyEvent;
-import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
@@ -105,5 +105,5 @@
 			for(Device device: nodeGroup.getResourceCharacteristic().getDevices()){
 				try {
-					fpc = fpc + device.getAirThroughputInterface().getPowerConsumption(new UserAirThroughputStateName("2"));
+					fpc = fpc + device.getAirflowInterface().getPowerConsumption(new CustomAirflowStateName("2"));
 				} catch (NoSuchFieldException e) {
 					// TODO Auto-generated catch block
Index: DCWoRMS/branches/coolemall/src/example/energy/coolemall/FlowPumpInletEnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/coolemall/FlowPumpInletEnergyEstimationPlugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/energy/coolemall/FlowPumpInletEnergyEstimationPlugin.java	(revision 1396)
@@ -26,5 +26,5 @@
 		
 		delta_p = ConfigurationOptions.coolingData.getPressureDrop();
-		Vair_total = ConfigurationOptions.coolingData.getAirFlowVolume();
+		Vair_total = ConfigurationOptions.coolingData.getAirflowVolume();
 		
 		if(delta_p != -1 && Vair_total != -1)
@@ -53,5 +53,5 @@
 							double Vair_recs1 = 0;
 
-							Vair_recs1  = fan.getAirThroughputInterface().getRecentAirFlow().getValue();
+							Vair_recs1  = fan.getAirflowInterface().getRecentAirflow().getValue();
 
 							double Vair_recs2 = 0;
@@ -59,5 +59,5 @@
 								if(device2.getType().equals(StandardResourceType.Inlet) && device2.getFullName().equals(fan.getFullName().replace("Outlet", "Inlet"))){
 
-									Vair_recs2  = device2.getAirThroughputInterface().getRecentAirFlow().getValue();
+									Vair_recs2  = device2.getAirflowInterface().getRecentAirflow().getValue();
 
 									break;
@@ -86,11 +86,11 @@
 	}
 	
-	public double estimateAirThroughput(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
-		double airThroughput = 0;
+	public double estimateAirflow(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
+		double airflow = 0;
 		double Vair_total;
 		
-		Vair_total = ConfigurationOptions.coolingData.getAirFlowVolume();
+		Vair_total = ConfigurationOptions.coolingData.getAirflowVolume();
 		if(Vair_total != -1) {
-			airThroughput = Vair_total;
+			airflow = Vair_total;
 		} else {
 			Device flowPump = (Device) resource;
@@ -114,5 +114,5 @@
 							double Vair_recs1 = 0;
 
-							Vair_recs1  = fan.getAirThroughputInterface().getRecentAirFlow().getValue();
+							Vair_recs1  = fan.getAirflowInterface().getRecentAirflow().getValue();
 
 							double Vair_recs2 = 0;
@@ -120,5 +120,5 @@
 								if(device2.getType().equals(StandardResourceType.Inlet) && device2.getFullName().equals(fan.getFullName().replace("Outlet", "Inlet"))){
 
-									Vair_recs2  = device2.getAirThroughputInterface().getRecentAirFlow().getValue();
+									Vair_recs2  = device2.getAirflowInterface().getRecentAirflow().getValue();
 
 									break;
@@ -136,7 +136,7 @@
 			mair_total = mair_rack;
 			Vair_total = mair_total / ro;
-			airThroughput = Vair_total;
+			airflow = Vair_total;
 		}
-		return airThroughput;
+		return airflow;
 	}
 	
Index: DCWoRMS/branches/coolemall/src/example/energy/coolemall/NodeEnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/coolemall/NodeEnergyEstimationPlugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/energy/coolemall/NodeEnergyEstimationPlugin.java	(revision 1396)
@@ -34,5 +34,5 @@
 						if(fan.getPowerInterface().getRecentPowerUsage().getValue() == -1){
 							try {
-								powerConsumption = powerConsumption + fan.getAirThroughputInterface().getPowerConsumption(fan.getAirThroughputInterface().getAirThroughputState())/getNumberOfWorkingNodes(fan);
+								powerConsumption = powerConsumption + fan.getAirflowInterface().getPowerConsumption(fan.getAirflowInterface().getAirflowState())/getNumberOfWorkingNodes(fan);
 							} catch (NoSuchFieldException e) {
 								// TODO Auto-generated catch block
Index: DCWoRMS/branches/coolemall/src/example/energy/coolemall/CB2EnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/coolemall/CB2EnergyEstimationPlugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/energy/coolemall/CB2EnergyEstimationPlugin.java	(revision 1396)
@@ -168,5 +168,5 @@
 		
 		delta_p = ConfigurationOptions.coolingData.getPressureDrop();
-		Vair_total = ConfigurationOptions.coolingData.getAirFlowVolume();
+		Vair_total = ConfigurationOptions.coolingData.getAirflowVolume();
 		
 		if(delta_p != -1 && Vair_total != -1)
@@ -192,5 +192,5 @@
 							double Vair_recs1 = 0;
 
-							Vair_recs1  = fan.getAirThroughputInterface().getRecentAirFlow().getValue();
+							Vair_recs1  = fan.getAirflowInterface().getRecentAirflow().getValue();
 
 							double Vair_recs2 = 0;
@@ -198,5 +198,5 @@
 								if(device2.getType().equals(StandardResourceType.Inlet) && device2.getFullName().equals(fan.getFullName().replace("Outlet", "Inlet"))){
 
-									Vair_recs2  = device2.getAirThroughputInterface().getRecentAirFlow().getValue();
+									Vair_recs2  = device2.getAirflowInterface().getRecentAirflow().getValue();
 
 									break;
@@ -401,5 +401,5 @@
 					if(fan.getPowerInterface().getRecentPowerUsage().getValue() == -1){
 						try {
-							Qfans = Qfans + (1 - delta_2) * fan.getAirThroughputInterface().getPowerConsumption(fan.getAirThroughputInterface().getAirThroughputState());
+							Qfans = Qfans + (1 - delta_2) * fan.getAirflowInterface().getPowerConsumption(fan.getAirflowInterface().getAirflowState());
 						} catch (NoSuchFieldException e) {
 							// TODO Auto-generated catch block
@@ -443,5 +443,5 @@
 		double ro = 1.168;//constant
 		
-		Vair_total = ConfigurationOptions.coolingData.getAirFlowVolume();
+		Vair_total = ConfigurationOptions.coolingData.getAirflowVolume();
 		
 		if(Vair_total != -1) {
@@ -465,5 +465,5 @@
 							double Vair_recs1 = 0;
 
-							Vair_recs1  = fan.getAirThroughputInterface().getRecentAirFlow().getValue();
+							Vair_recs1  = fan.getAirflowInterface().getRecentAirflow().getValue();
 
 							double Vair_recs2 = 0;
@@ -471,5 +471,5 @@
 								if(device2.getType().equals(StandardResourceType.Inlet) && device2.getFullName().equals(fan.getFullName().replace("Outlet", "Inlet"))){
 
-									Vair_recs2  = device2.getAirThroughputInterface().getRecentAirFlow().getValue();
+									Vair_recs2  = device2.getAirflowInterface().getRecentAirflow().getValue();
 
 									break;
Index: DCWoRMS/branches/coolemall/src/example/energy/coolemall/FlowPumpOutletEnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/coolemall/FlowPumpOutletEnergyEstimationPlugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/energy/coolemall/FlowPumpOutletEnergyEstimationPlugin.java	(revision 1396)
@@ -23,11 +23,11 @@
 	}
 	
-	public double estimateAirThroughput(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
-		double airThroughput = 0;
+	public double estimateAirflow(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
+		double airflow = 0;
 		double Vair_total;
 		
-		Vair_total = ConfigurationOptions.coolingData.getAirFlowVolume();
+		Vair_total = ConfigurationOptions.coolingData.getAirflowVolume();
 		if(Vair_total != -1) {
-			airThroughput = Vair_total;
+			airflow = Vair_total;
 		} else {
 			Device flowPump = (Device) resource;
@@ -51,5 +51,5 @@
 							double Vair_recs1 = 0;
 
-							Vair_recs1  = fan.getAirThroughputInterface().getRecentAirFlow().getValue();
+							Vair_recs1  = fan.getAirflowInterface().getRecentAirflow().getValue();
 
 							double Vair_recs2 = 0;
@@ -57,5 +57,5 @@
 								if(device2.getType().equals(StandardResourceType.Inlet) && device2.getFullName().equals(fan.getFullName().replace("Outlet", "Inlet"))){
 
-									Vair_recs2  = device2.getAirThroughputInterface().getRecentAirFlow().getValue();
+									Vair_recs2  = device2.getAirflowInterface().getRecentAirflow().getValue();
 
 									break;
@@ -73,7 +73,7 @@
 			mair_total = mair_rack;
 			Vair_total = mair_total / ro;
-			airThroughput = Vair_total;
+			airflow = Vair_total;
 		}
-		return airThroughput;
+		return airflow;
 	}
 }
Index: DCWoRMS/branches/coolemall/src/example/energy/coolemall/CoolingDeviceEnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/coolemall/CoolingDeviceEnergyEstimationPlugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/energy/coolemall/CoolingDeviceEnergyEstimationPlugin.java	(revision 1396)
@@ -18,7 +18,7 @@
 public class CoolingDeviceEnergyEstimationPlugin extends BaseEnergyEstimationPlugin {
 
-	public double estimateAirThroughput(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
-		double airThroughput = 0;
-		return airThroughput;
+	public double estimateAirflow(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
+		double airflow = 0;
+		return airflow;
 	}
 
@@ -140,5 +140,5 @@
 		
 		delta_p = ConfigurationOptions.coolingData.getPressureDrop();
-		Vair_total = ConfigurationOptions.coolingData.getAirFlowVolume();
+		Vair_total = ConfigurationOptions.coolingData.getAirflowVolume();
 		
 		if(delta_p != -1 && Vair_total != -1)
@@ -164,5 +164,5 @@
 							double Vair_recs1 = 0;
 
-							Vair_recs1  = fan.getAirThroughputInterface().getRecentAirFlow().getValue();
+							Vair_recs1  = fan.getAirflowInterface().getRecentAirflow().getValue();
 
 							double Vair_recs2 = 0;
@@ -170,5 +170,5 @@
 								if(device2.getType().equals(StandardResourceType.Inlet) && device2.getFullName().equals(fan.getFullName().replace("Outlet", "Inlet"))){
 
-									Vair_recs2  = device2.getAirThroughputInterface().getRecentAirFlow().getValue();
+									Vair_recs2  = device2.getAirflowInterface().getRecentAirflow().getValue();
 
 									break;
@@ -373,5 +373,5 @@
 					if(fan.getPowerInterface().getRecentPowerUsage().getValue() == -1){
 						try {
-							Qfans = Qfans + (1 - delta_2) * fan.getAirThroughputInterface().getPowerConsumption(fan.getAirThroughputInterface().getAirThroughputState());
+							Qfans = Qfans + (1 - delta_2) * fan.getAirflowInterface().getPowerConsumption(fan.getAirflowInterface().getAirflowState());
 						} catch (NoSuchFieldException e) {
 							// TODO Auto-generated catch block
@@ -415,5 +415,5 @@
 		double ro = 1.168;//constant
 		
-		Vair_total = ConfigurationOptions.coolingData.getAirFlowVolume();
+		Vair_total = ConfigurationOptions.coolingData.getAirflowVolume();
 		
 		if(Vair_total != -1) {
@@ -437,5 +437,5 @@
 							double Vair_recs1 = 0;
 
-							Vair_recs1  = fan.getAirThroughputInterface().getRecentAirFlow().getValue();
+							Vair_recs1  = fan.getAirflowInterface().getRecentAirflow().getValue();
 
 							double Vair_recs2 = 0;
@@ -443,5 +443,5 @@
 								if(device2.getType().equals(StandardResourceType.Inlet) && device2.getFullName().equals(fan.getFullName().replace("Outlet", "Inlet"))){
 
-									Vair_recs2  = device2.getAirThroughputInterface().getRecentAirFlow().getValue();
+									Vair_recs2  = device2.getAirflowInterface().getRecentAirflow().getValue();
 
 									break;
Index: DCWoRMS/branches/coolemall/src/example/energy/coolemall/CoreEnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/coolemall/CoreEnergyEstimationPlugin.java	(revision 1207)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package example.energy.coolemall;
-
-import schedframe.resources.computing.profiles.energy.EnergyEvent;
-import schedframe.resources.devices.PhysicalResource;
-import schedframe.scheduling.manager.tasks.JobRegistry;
-import example.energy.BaseEnergyEstimationPlugin;
-
-public class CoreEnergyEstimationPlugin extends BaseEnergyEstimationPlugin  {
-
-	public double estimatePowerConsumption(EnergyEvent event, JobRegistry jobRegistry,
-			PhysicalResource resource) {
-		
-		double powerConsumption = 0;
-		return powerConsumption;
-	}
-
-}
Index: DCWoRMS/branches/coolemall/src/example/energy/device/FanEnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/device/FanEnergyEstimationPlugin.java	(revision 1207)
+++ DCWoRMS/branches/coolemall/src/example/energy/device/FanEnergyEstimationPlugin.java	(revision 1396)
@@ -3,5 +3,5 @@
 import schedframe.events.scheduling.EventReason;
 import schedframe.resources.computing.profiles.energy.EnergyEvent;
-import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirflowStateName;
 import schedframe.resources.devices.PhysicalResource;
 import schedframe.scheduling.manager.tasks.JobRegistry;
@@ -15,7 +15,7 @@
 		try {
 			if(event.getReason() == EventReason.SIM_INIT)
-				powerConsumption = powerConsumption + resource.getAirThroughputInterface().getPowerConsumption(StandardAirThroughputStateName.OFF);
+				powerConsumption = powerConsumption + resource.getAirflowInterface().getPowerConsumption(StandardAirflowStateName.OFF);
 			else
-				powerConsumption = powerConsumption + resource.getAirThroughputInterface().getPowerConsumption(resource.getAirThroughputInterface().getAirThroughputState());
+				powerConsumption = powerConsumption + resource.getAirflowInterface().getPowerConsumption(resource.getAirflowInterface().getAirflowState());
 		} catch (NoSuchFieldException e) {
 		}
@@ -24,16 +24,16 @@
 	}
 
-	public double estimateAirThroughput(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
-		double airThroughput = 0;
+	public double estimateAirflow(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
+		double airflow= 0;
 		try {
 			if(event.getReason() == EventReason.SIM_INIT)
-				airThroughput = resource.getAirThroughputInterface().getAirFlow(StandardAirThroughputStateName.OFF);
+				airflow = resource.getAirflowInterface().getAirflow(StandardAirflowStateName.OFF);
 			else
-				airThroughput = resource.getAirThroughputInterface().getAirFlow(resource.getAirThroughputInterface().getAirThroughputState());
+				airflow = resource.getAirflowInterface().getAirflow(resource.getAirflowInterface().getAirflowState());
 		} catch (NoSuchFieldException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
-		return airThroughput;
+		return airflow;
 	}
 }
Index: DCWoRMS/branches/coolemall/src/example/energy/BaseEnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/energy/BaseEnergyEstimationPlugin.java	(revision 1207)
+++ DCWoRMS/branches/coolemall/src/example/energy/BaseEnergyEstimationPlugin.java	(revision 1396)
@@ -17,5 +17,5 @@
 	
 	@Override
-	public double estimateAirThroughput(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
+	public double estimateAirflow(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
 		throw new RuntimeException("Not implemented.");
 	}
Index: DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_ConsolidationLowPower_NodePowMan_Plugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_ConsolidationLowPower_NodePowMan_Plugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_ConsolidationLowPower_NodePowMan_Plugin.java	(revision 1396)
@@ -17,5 +17,5 @@
 import schedframe.resources.computing.Node;
 import schedframe.resources.computing.Processor;
-import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirflowStateName;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
@@ -30,5 +30,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -168,5 +168,5 @@
 					for(Device device: node.getParent().getResourceCharacteristic().getDevices()){
 						if(device.getType().equals(StandardResourceType.Fan)){
-							device.getAirThroughputInterface().setAirThroughputState(StandardAirThroughputStateName.ON);
+							device.getAirflowInterface().setAirflowState(StandardAirflowStateName.ON);
 							break;
 						}
@@ -191,5 +191,5 @@
 				for(Device device: node.getParent().getResourceCharacteristic().getDevices()){
 					if(device.getType().equals(StandardResourceType.Fan)){
-						device.getAirThroughputInterface().setAirThroughputState(StandardAirThroughputStateName.OFF);
+						device.getAirflowInterface().setAirflowState(StandardAirflowStateName.OFF);
 						break;
 					}
Index: DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_ExamplePlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_ExamplePlugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_ExamplePlugin.java	(revision 1396)
@@ -25,5 +25,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_DFSPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_DFSPlugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_DFSPlugin.java	(revision 1396)
@@ -21,5 +21,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/recs/RECS_FCFS_LB_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/recs/RECS_FCFS_LB_SP.java	(revision 1258)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/recs/RECS_FCFS_LB_SP.java	(revision 1396)
@@ -11,5 +11,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -55,5 +55,4 @@
 	}
 
-	@SuppressWarnings("unchecked")
 	private String chooseProvider(ClusterResourceManager resourceManager) {
 		List<Node> nodes = resourceManager.getNodes();
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/recs/RECS_FCFS_Random_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/recs/RECS_FCFS_Random_SP.java	(revision 1258)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/recs/RECS_FCFS_Random_SP.java	(revision 1396)
@@ -12,5 +12,5 @@
 import schedframe.resources.computing.Core;
 import schedframe.resources.computing.Node;
-import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
 import schedframe.resources.devices.Device;
 import schedframe.resources.units.ProcessingElements;
@@ -23,5 +23,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -79,5 +79,4 @@
 	}
 
-	@SuppressWarnings("unchecked")
 	private Node chooseRandomProvider(ClusterResourceManager resourceManager) {
 		List<Node> nodes = resourceManager.getNodes();
@@ -184,5 +183,5 @@
 				for(Device device: node.getParent().getResourceCharacteristic().getDevices()){
 					if(device.getFullName().equals(Node_Fan_Mapping.getNode_fan().get(node.getFullName()))){
-						device.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("Off"));
+						device.getAirflowInterface().setAirflowState(new CustomAirflowStateName("Off"));
 						break;
 					}
@@ -192,5 +191,5 @@
 				for(Device device: node.getParent().getResourceCharacteristic().getDevices()){
 					if(device.getFullName().equals(Node_Fan_Mapping.getNode_fan().get(node.getFullName()))){
-						device.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("On"));
+						device.getAirflowInterface().setAirflowState(new CustomAirflowStateName("On"));
 						break;
 					}
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/recs/RECS_FCFS_Consolidation_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/recs/RECS_FCFS_Consolidation_SP.java	(revision 1258)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/recs/RECS_FCFS_Consolidation_SP.java	(revision 1396)
@@ -25,5 +25,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_Random_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_Random_SP.java	(revision 1258)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_Random_SP.java	(revision 1396)
@@ -21,5 +21,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -70,5 +70,4 @@
 	}
 
-	@SuppressWarnings("unchecked")
 	private Map<ResourceUnitName, ResourceUnit> chooseResourcesForExecution(
 			ClusterResourceManager resourceManager, TaskInterface<?> task) {
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationHighPerf_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationHighPerf_SP.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationHighPerf_SP.java	(revision 1396)
@@ -25,5 +25,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -72,5 +72,4 @@
 	}
 
-	@SuppressWarnings("unchecked")
 	private Map<ResourceUnitName, ResourceUnit> chooseResourcesForExecution(
 			ClusterResourceManager resourceManager, TaskInterface<?> task) {
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationLowPower_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationLowPower_SP.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationLowPower_SP.java	(revision 1396)
@@ -25,5 +25,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -72,5 +72,4 @@
 	}
 
-	@SuppressWarnings("unchecked")
 	private Map<ResourceUnitName, ResourceUnit> chooseResourcesForExecution(
 			ClusterResourceManager resourceManager, TaskInterface<?> task) {
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationHighPerf_NodePowMan_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationHighPerf_NodePowMan_SP.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationHighPerf_NodePowMan_SP.java	(revision 1396)
@@ -16,5 +16,5 @@
 import schedframe.resources.computing.Core;
 import schedframe.resources.computing.Processor;
-import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
@@ -31,5 +31,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -226,5 +226,5 @@
 							Fan fan = (Fan) device;
 							if(fan.getChilledResources().contains(node.getFullName())){
-								fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("2"));
+								fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("2"));
 							}
 						}
@@ -262,5 +262,5 @@
 						if(fan.getChilledResources().contains(node.getFullName())){
 							if(nrOfChilldedNodes == 1)
-								fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("1"));
+								fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("1"));
 							else {
 								for(String chilledNode: fan.getChilledResources()){
@@ -274,5 +274,5 @@
 								}
 								if(nrOfChilldedNodes <= 1)
-									fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("1"));
+									fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("1"));
 							}
 
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationLowPower_NodePowMan_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationLowPower_NodePowMan_SP.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_ConsolidationLowPower_NodePowMan_SP.java	(revision 1396)
@@ -16,5 +16,5 @@
 import schedframe.resources.computing.Node;
 import schedframe.resources.computing.Processor;
-import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
@@ -31,5 +31,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -226,5 +226,5 @@
 							Fan fan = (Fan) device;
 							if(fan.getChilledResources().contains(node.getFullName())){
-								fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("2"));
+								fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("2"));
 							}
 						}
@@ -262,5 +262,5 @@
 						if(fan.getChilledResources().contains(node.getFullName())){
 							if(nrOfChilldedNodes == 1)
-								fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("1"));
+								fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("1"));
 							else {
 								for(String chilledNode: fan.getChilledResources()){
@@ -274,5 +274,5 @@
 								}
 								if(nrOfChilldedNodes <= 1)
-									fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("1"));
+									fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("1"));
 							}
 
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_LoadBalancing_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_LoadBalancing_SP.java	(revision 1258)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox1/CB1_FCFS_LoadBalancing_SP.java	(revision 1396)
@@ -11,5 +11,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -54,5 +54,4 @@
 	}
 
-	@SuppressWarnings("unchecked")
 	private String chooseProvider(ClusterResourceManager resourceManager) {
 		List<Node> nodes = resourceManager.getNodes();
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_PowerCapping_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_PowerCapping_SP.java	(revision 1319)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_PowerCapping_SP.java	(revision 1396)
@@ -20,5 +20,5 @@
 import schedframe.resources.computing.coolemall.ComputeBox1;
 import schedframe.resources.computing.coolemall.NodeGroup;
-import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.devices.Device;
@@ -34,5 +34,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -364,5 +364,5 @@
 
 										if(fan.getChilledResources().contains(n.getFullName())){
-											fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("2"));
+											fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("2"));
 										}
 									}
@@ -457,5 +457,5 @@
 
 										if(fan.getChilledResources().contains(n.getFullName())){
-											fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("2"));
+											fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("2"));
 										}
 									}
@@ -546,5 +546,5 @@
 			for(Device device: nodeGroup.getResourceCharacteristic().getDevices()){
 				try {
-					fpc = fpc + device.getAirThroughputInterface().getPowerConsumption(new UserAirThroughputStateName("2"));
+					fpc = fpc + device.getAirflowInterface().getPowerConsumption(new CustomAirflowStateName("2"));
 				} catch (NoSuchFieldException e) {
 					// TODO Auto-generated catch block
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_Random_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_Random_SP.java	(revision 1319)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_Random_SP.java	(revision 1396)
@@ -23,5 +23,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_SP.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_SP.java	(revision 1396)
@@ -26,5 +26,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_PowerCapping_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_PowerCapping_SP.java	(revision 1319)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_PowerCapping_SP.java	(revision 1396)
@@ -20,5 +20,5 @@
 import schedframe.resources.computing.coolemall.ComputeBox1;
 import schedframe.resources.computing.coolemall.NodeGroup;
-import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.devices.Device;
@@ -34,5 +34,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -282,5 +282,5 @@
 
 										if(fan.getChilledResources().contains(n.getFullName())){
-											fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("2"));
+											fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("2"));
 										}
 									}
@@ -375,5 +375,5 @@
 
 										if(fan.getChilledResources().contains(n.getFullName())){
-											fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("2"));
+											fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("2"));
 										}
 									}
@@ -464,5 +464,5 @@
 			for(Device device: nodeGroup.getResourceCharacteristic().getDevices()){
 				try {
-					fpc = fpc + device.getAirThroughputInterface().getPowerConsumption(new UserAirThroughputStateName("2"));
+					fpc = fpc + device.getAirflowInterface().getPowerConsumption(new CustomAirflowStateName("2"));
 				} catch (NoSuchFieldException e) {
 					// TODO Auto-generated catch block
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_SP.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_SP.java	(revision 1396)
@@ -25,5 +25,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_NodePowMan_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_NodePowMan_SP.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationHighPerf_NodePowMan_SP.java	(revision 1396)
@@ -17,5 +17,5 @@
 import schedframe.resources.computing.Processor;
 import schedframe.resources.computing.Rack;
-import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
@@ -32,5 +32,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -227,5 +227,5 @@
 							Fan fan = (Fan) device;
 							if(fan.getChilledResources().contains(node.getFullName())){
-								fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("2"));
+								fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("2"));
 							}
 						}
@@ -263,5 +263,5 @@
 						if(fan.getChilledResources().contains(node.getFullName())){
 							if(nrOfChilldedNodes == 1)
-								fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("1"));
+								fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("1"));
 							else {
 								for(String chilledNode: fan.getChilledResources()){
@@ -275,5 +275,5 @@
 								}
 								if(nrOfChilldedNodes <= 1)
-									fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("1"));
+									fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("1"));
 							}
 
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_NodePowMan_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_NodePowMan_SP.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_ConsolidationLowPower_NodePowMan_SP.java	(revision 1396)
@@ -16,5 +16,5 @@
 import schedframe.resources.computing.Node;
 import schedframe.resources.computing.Processor;
-import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
@@ -31,5 +31,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -226,5 +226,5 @@
 							Fan fan = (Fan) device;
 							if(fan.getChilledResources().contains(node.getFullName())){
-								fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("2"));
+								fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("2"));
 							}
 						}
@@ -262,5 +262,5 @@
 						if(fan.getChilledResources().contains(node.getFullName())){
 							if(nrOfChilldedNodes == 1)
-								fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("1"));
+								fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("1"));
 							else {
 								for(String chilledNode: fan.getChilledResources()){
@@ -274,5 +274,5 @@
 								}
 								if(nrOfChilldedNodes <= 1)
-									fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("1"));
+									fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("1"));
 							}
 
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_LoadBalancing_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_LoadBalancing_SP.java	(revision 1319)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_LoadBalancing_SP.java	(revision 1396)
@@ -11,5 +11,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_Random_PowerCapping_SP.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_Random_PowerCapping_SP.java	(revision 1319)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/computebox2/CB2_FCFS_Random_PowerCapping_SP.java	(revision 1396)
@@ -19,5 +19,5 @@
 import schedframe.resources.computing.coolemall.ComputeBox1;
 import schedframe.resources.computing.coolemall.NodeGroup;
-import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.devices.Device;
@@ -32,5 +32,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -245,5 +245,5 @@
 
 										if(fan.getChilledResources().contains(n.getFullName())){
-											fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("2"));
+											fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("2"));
 										}
 									}
@@ -338,5 +338,5 @@
 
 										if(fan.getChilledResources().contains(n.getFullName())){
-											fan.getAirThroughputInterface().setAirThroughputState(new UserAirThroughputStateName("2"));
+											fan.getAirflowInterface().setAirflowState(new CustomAirflowStateName("2"));
 										}
 									}
@@ -427,5 +427,5 @@
 			for(Device device: nodeGroup.getResourceCharacteristic().getDevices()){
 				try {
-					fpc = fpc + device.getAirThroughputInterface().getPowerConsumption(new UserAirThroughputStateName("2"));
+					fpc = fpc + device.getAirflowInterface().getPowerConsumption(new CustomAirflowStateName("2"));
 				} catch (NoSuchFieldException e) {
 					// TODO Auto-generated catch block
Index: DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_RandomPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_RandomPlugin.java	(revision 1258)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_RandomPlugin.java	(revision 1396)
@@ -13,5 +13,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/BaseLocalSchedulingPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/BaseLocalSchedulingPlugin.java	(revision 555)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/BaseLocalSchedulingPlugin.java	(revision 1396)
@@ -17,6 +17,6 @@
 import schedframe.scheduling.plan.impl.ScheduledTask;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.plugin.SchedulingPluginConfiguration;
-import schedframe.scheduling.plugin.grid.ModuleList;
 import schedframe.scheduling.plugin.local.LocalSchedulingPlugin;
 import schedframe.scheduling.queue.TaskQueue;
Index: DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_ConsolidationHighPerf_NodePowMan_Plugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_ConsolidationHighPerf_NodePowMan_Plugin.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/Cluster_FCFSBF_ConsolidationHighPerf_NodePowMan_Plugin.java	(revision 1396)
@@ -17,5 +17,5 @@
 import schedframe.resources.computing.Node;
 import schedframe.resources.computing.Processor;
-import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirThroughputStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirflowStateName;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
@@ -30,5 +30,5 @@
 import schedframe.scheduling.plan.SchedulingPlanInterface;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -169,5 +169,5 @@
 					for(Device device: node.getParent().getResourceCharacteristic().getDevices()){
 						if(device.getType().equals(StandardResourceType.Fan)){
-							device.getAirThroughputInterface().setAirThroughputState(StandardAirThroughputStateName.ON);
+							device.getAirflowInterface().setAirflowState(StandardAirflowStateName.ON);
 							break;
 						}
@@ -192,5 +192,5 @@
 				for(Device device: node.getParent().getResourceCharacteristic().getDevices()){
 					if(device.getType().equals(StandardResourceType.Fan)){
-						device.getAirThroughputInterface().setAirThroughputState(StandardAirThroughputStateName.OFF);
+						device.getAirflowInterface().setAirflowState(StandardAirflowStateName.OFF);
 						break;
 					}
Index: DCWoRMS/branches/coolemall/src/example/localplugin/FCFSBF_LocalPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/localplugin/FCFSBF_LocalPlugin.java	(revision 888)
+++ DCWoRMS/branches/coolemall/src/example/localplugin/FCFSBF_LocalPlugin.java	(revision 1396)
@@ -6,5 +6,5 @@
 import schedframe.scheduling.manager.tasks.JobRegistry;
 import schedframe.scheduling.plan.impl.SchedulingPlan;
-import schedframe.scheduling.plugin.grid.ModuleList;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.queue.TaskQueue;
 import schedframe.scheduling.queue.TaskQueueList;
Index: DCWoRMS/branches/coolemall/src/example/timeestimation/coolemall/PhaseTimeEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/timeestimation/coolemall/PhaseTimeEstimationPlugin.java	(revision 1253)
+++ DCWoRMS/branches/coolemall/src/example/timeestimation/coolemall/PhaseTimeEstimationPlugin.java	(revision 1396)
@@ -25,5 +25,5 @@
 		Executable exec = (Executable) task;
 
-		ResourceConsumption resConsumption = exec.getResourceConsumptionProfile().getCurrentResourceConsumption();
+		ResourceConsumption resConsumption = exec.getExecutionProfile().getCurrentResourceConsumption();
 
 		double execTime = (1 - completionPercentage/100) * resConsumption.getDuration();
Index: DCWoRMS/branches/coolemall/src/example/timeestimation/coolemall/CPUFreqScalingPhaseTimeEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/example/timeestimation/coolemall/CPUFreqScalingPhaseTimeEstimationPlugin.java	(revision 1364)
+++ DCWoRMS/branches/coolemall/src/example/timeestimation/coolemall/CPUFreqScalingPhaseTimeEstimationPlugin.java	(revision 1396)
@@ -2,6 +2,4 @@
 
 import java.util.Map;
-
-import org.joda.time.DateTime;
 
 import schedframe.events.scheduling.SchedulingEvent;
@@ -14,7 +12,5 @@
 import schedframe.resources.units.ResourceUnitName;
 import schedframe.resources.units.StandardResourceUnitName;
-import schedframe.scheduling.tasks.phases.ResourceConsumption;
 import dcworms.schedframe.scheduling.ExecTask;
-import dcworms.schedframe.scheduling.Executable;
 import example.timeestimation.BaseTimeEstimationPlugin;
 
@@ -26,5 +22,5 @@
 			double completionPercentage) {
 		
-		String taskFreqString = task.getCurrentResourceConsumption().getReferenceHardware().get("cpu_maxfreq");
+		String taskFreqString = task.getExecutionProfile().getCurrentResourceConsumption().getReferenceHardware().get("cpu_maxfreq");
 		double taskFreq = Double.valueOf(taskFreqString);
 		
@@ -49,5 +45,5 @@
 			currentFrequency = taskFreq;
 
-		double execTime = (1 - completionPercentage/100) * task.getCurrentResourceConsumption().getDuration() * (taskFreq / currentFrequency);
+		double execTime = (1 - completionPercentage/100) * task.getExecutionProfile().getCurrentResourceConsumption().getDuration() * (taskFreq / currentFrequency);
 
 		// if the result is very close to 0, but less then one millisecond then round this result to 0.001
Index: DCWoRMS/branches/coolemall/src/dcworms/schedframe/scheduling/Executable.java
===================================================================
--- DCWoRMS/branches/coolemall/src/dcworms/schedframe/scheduling/Executable.java	(revision 1362)
+++ DCWoRMS/branches/coolemall/src/dcworms/schedframe/scheduling/Executable.java	(revision 1396)
@@ -24,5 +24,5 @@
 import schedframe.resources.units.StandardResourceUnitName;
 import schedframe.scheduling.ExecutionHistoryItem;
-import schedframe.scheduling.ResourceHistoryItem;
+import schedframe.scheduling.ResourceItem;
 import schedframe.scheduling.WorkloadUnitHandler;
 import schedframe.scheduling.manager.tasks.JobRegistryImpl;
@@ -65,5 +65,5 @@
 	
 	protected LinkedList<ExecutionHistoryItem> execHistory;;
-	protected LinkedList<ResourceHistoryItem> allocatedResources;
+	protected LinkedList<ResourceItem> allocatedResources;
 	
 	public Executable(Task t){
@@ -71,5 +71,5 @@
 		this.status = DCWormsTags.CREATED;
 
-		this.allocatedResources = new LinkedList<ResourceHistoryItem>();
+		this.allocatedResources = new LinkedList<ResourceItem>();
 		this.execHistory = new LinkedList<ExecutionHistoryItem>();
 		init();
@@ -81,5 +81,5 @@
 		this.processesSetId = procesesSet.getId(); 
 		
-		this.allocatedResources = new LinkedList<ResourceHistoryItem>();
+		this.allocatedResources = new LinkedList<ResourceItem>();
 		this.execHistory = new LinkedList<ExecutionHistoryItem>();
 		init();
@@ -366,5 +366,5 @@
 	}*/
 	
-	public ExecutionProfile getResourceConsumptionProfile(){
+	public ExecutionProfile getExecutionProfile(){
 		return execProfile;
 	}
@@ -470,5 +470,5 @@
 	}
 
-	public LinkedList<ExecutionHistoryItem> getExecHistory() {
+	public LinkedList<ExecutionHistoryItem> getExecutionHistory() {
 		return execHistory;
 	}
@@ -478,9 +478,9 @@
 	}
 
-	public LinkedList<ResourceHistoryItem> getAllocatedResources() {
+	public LinkedList<ResourceItem> getAllocatedResources() {
 		return allocatedResources;
 	}
 
-	public void addAllocatedResources(ResourceHistoryItem allocatedResourcesItem) {
+	public void addAllocatedResources(ResourceItem allocatedResourcesItem) {
 		this.allocatedResources.add(allocatedResourcesItem);
 	}
Index: DCWoRMS/branches/coolemall/src/dcworms/schedframe/scheduling/ExecTask.java
===================================================================
--- DCWoRMS/branches/coolemall/src/dcworms/schedframe/scheduling/ExecTask.java	(revision 1362)
+++ DCWoRMS/branches/coolemall/src/dcworms/schedframe/scheduling/ExecTask.java	(revision 1396)
@@ -4,7 +4,6 @@
 
 import schedframe.scheduling.ExecutionHistoryItem;
-import schedframe.scheduling.ResourceHistoryItem;
+import schedframe.scheduling.ResourceItem;
 import schedframe.scheduling.tasks.TaskInterface;
-import schedframe.scheduling.tasks.phases.ResourceConsumption;
 import schedframe.scheduling.tasks.phases.ExecutionProfile;
 import schedframe.scheduling.tasks.requirements.ResourceParameterName;
@@ -15,10 +14,10 @@
 	public Object getExpectedSpecificResource(ResourceParameterName resourceName);
 	
-	public LinkedList<ExecutionHistoryItem> getExecHistory();
-	public LinkedList<ResourceHistoryItem> getAllocatedResources();
+	public ExecutionProfile getExecutionProfile();
 	
-	public ExecutionProfile getResourceConsumptionProfile();
-	public ResourceConsumption getCurrentResourceConsumption();
+	public LinkedList<ResourceItem> getAllocatedResources();
+    public String getSchedulerName();
 	
-    public String getSchedulerName();
+	public LinkedList<ExecutionHistoryItem> getExecutionHistory();
+
 }
Index: DCWoRMS/branches/coolemall/src/simulator/stats/DCwormsAccumulator.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/DCwormsAccumulator.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/DCwormsAccumulator.java	(revision 1396)
@@ -0,0 +1,137 @@
+/**
+ * 
+ */
+package simulator.stats;
+
+
+import simulator.DataCenterWorkloadSimulator;
+import gridsim.Accumulator;
+
+/**
+ * This class temporarily adds new methods to {@link Accumulator} class.
+ * 
+ * @author Stanislaw Szczepanowski
+ * 
+ */
+public class DCwormsAccumulator extends Accumulator {
+
+	public DCwormsAccumulator() {
+		super();
+	}
+
+	public DCwormsAccumulator(Accumulator acc) {
+		n_ = acc.getCount();
+		mean_ = acc.getMean();
+		sqrMean_ = acc.getStandardDeviation() + (mean_ * mean_);
+		min_ = acc.getMin();
+		max_ = acc.getMax();
+		last_ = acc.getLast();
+	}
+
+	/**
+	 * This method must be overloaded, since it returns the wrong value.
+	 */
+	public double getStandardDeviation() {
+		return Math.sqrt(getVariance());
+	}
+
+	/**
+	 * Calculates the variance of accumulated items
+	 * 
+	 * @return the Standard Deviation of accumulated items
+	 * @pre $none
+	 * @post $none
+	 */
+	public double getVariance() {
+		return sqrMean_ - (mean_ * mean_);
+	}
+
+	public boolean equals(Object obj) {
+		if (!(obj instanceof DCwormsAccumulator))
+			return false;
+
+		DCwormsAccumulator otherAcc = (DCwormsAccumulator) obj;
+		if (Double.compare(this.last_, otherAcc.last_) != 0)
+			return false;
+		if (Double.compare(this.max_, otherAcc.max_) != 0)
+			return false;
+		if (Double.compare(this.mean_, otherAcc.mean_) != 0)
+			return false;
+		if (Double.compare(this.min_, otherAcc.min_) != 0)
+			return false;
+		if (Double.compare(this.n_, otherAcc.n_) != 0)
+			return false;
+		if (Double.compare(this.sqrMean_, otherAcc.sqrMean_) != 0)
+			return false;
+
+		return true;
+	}
+
+	public String toString() {
+		String accumulatorSeparator = ";";
+		StringBuffer buffer = new StringBuffer(50);
+
+		buffer.append(accumulatorSeparator);
+		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+				.getMean()));
+		buffer.append(accumulatorSeparator);
+		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+				.getStandardDeviation()));
+		buffer.append(accumulatorSeparator);
+		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+				.getVariance()));
+		buffer.append(accumulatorSeparator);
+		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+				.getMin()));
+		buffer.append(accumulatorSeparator);
+		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+				.getMax()));
+		buffer.append(accumulatorSeparator);
+		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+				.getSum()));
+		buffer.append(accumulatorSeparator);
+		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+				.getCount()));
+		buffer.append(accumulatorSeparator);
+
+		return buffer.toString();
+	}
+
+	public String toFormatedString() {
+
+		String accumulatorSeparator = "; ";
+		StringBuffer buffer = new StringBuffer(50);
+
+		buffer.append(accumulatorSeparator);
+		buffer.append(String.format("%16s",
+				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+						.getMean())));
+		buffer.append(accumulatorSeparator);
+		buffer.append(String.format("%16s",
+				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+						.getStandardDeviation())));
+		buffer.append(accumulatorSeparator);
+		buffer.append(String.format("%16s",
+				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+						.getVariance())));
+		buffer.append(accumulatorSeparator);
+		buffer.append(String.format("%16s",
+				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+						.getMin())));
+		buffer.append(accumulatorSeparator);
+		buffer.append(String.format("%16s",
+				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+						.getMax())));
+		buffer.append(accumulatorSeparator);
+		buffer.append(String.format("%16s",
+				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+						.getSum())));
+		buffer.append(accumulatorSeparator);
+		buffer.append(String.format("%16s",
+				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
+						.getCount())));
+		buffer.append(accumulatorSeparator);
+
+		return buffer.toString();
+	}
+}
Index: DCWoRMS/branches/coolemall/src/simulator/stats/DCwormsMetricsCalculator.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/DCwormsMetricsCalculator.java	(revision 1377)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/DCwormsMetricsCalculator.java	(revision 1396)
@@ -5,5 +5,4 @@
 
 import simulator.stats.implementation.MetricsStats;
-import example.energy.coolemall.CoolEmAllTestbedMeasurements;
 
 public class DCwormsMetricsCalculator extends AbstractMetricsCalculator{
@@ -45,5 +44,5 @@
 			
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Room")){
+			for(DCwormsAccumulator acc: metricsData.get("Room")){
 				roomPower = roomPower + acc.getSum();
 			}
@@ -61,5 +60,5 @@
 		try{
 			double itComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Processor")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor")){
 				itComputingPower = itComputingPower + acc.getSum();
 			}
@@ -76,13 +75,13 @@
 		try{
 			double totalSitePower = 0; 
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				totalSitePower = totalSitePower + acc.getSum();
 			}
 			double nodeComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Node")){
+			for(DCwormsAccumulator acc: metricsData.get("Node")){
 				nodeComputingPower = nodeComputingPower+ acc.getSum();
 			}
 			double itComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Processor")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor")){
 				itComputingPower = itComputingPower + acc.getSum();
 			}
@@ -101,10 +100,10 @@
 			
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Room")){
+			for(DCwormsAccumulator acc: metricsData.get("Room")){
 				roomPower = roomPower + acc.getSum();
 			}
 			
 			double totalSitePower = 0;
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				totalSitePower = totalSitePower + acc.getSum();
 			}
@@ -112,9 +111,9 @@
 		
 			double nodeComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Node")){
+			for(DCwormsAccumulator acc: metricsData.get("Node")){
 				nodeComputingPower = nodeComputingPower+ acc.getSum();
 			}
 			double itComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Processor")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor")){
 				itComputingPower = itComputingPower + acc.getSum();
 			}
@@ -134,10 +133,10 @@
 			
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Room")){
+			for(DCwormsAccumulator acc: metricsData.get("Room")){
 				roomPower = roomPower + acc.getSum();
 			}
 			
 			double totalSitePower = 0;
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				totalSitePower = totalSitePower + acc.getSum();
 			}
@@ -158,5 +157,5 @@
 			for(String key: metricsData.keySet()){
 				if(key.contains("/")){
-					for(GSSAccumulator acc: metricsData.get(key)){
+					for(DCwormsAccumulator acc: metricsData.get(key)){
 						usefulWork= usefulWork + acc.getSum();
 					}
@@ -178,5 +177,5 @@
 			for(String key: metricsData.keySet()){
 				if(key.contains("/")){
-					for(GSSAccumulator acc: metricsData.get(key)){
+					for(DCwormsAccumulator acc: metricsData.get(key)){
 						usefulWork= usefulWork + acc.getSum();
 					}
@@ -184,5 +183,5 @@
 			}
 			double totalSitePower = 0; 
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				totalSitePower = totalSitePower + acc.getSum();
 			}
@@ -204,5 +203,5 @@
 			double maxPower = 0;
 			
-			for(GSSAccumulator acc: metricsData.get("Room_MAX")){
+			for(DCwormsAccumulator acc: metricsData.get("Room_MAX")){
 				maxPower = maxPower + acc.getSum();
 			}
@@ -221,5 +220,5 @@
 		try{
 			double coolingDevicePower = 0;
-			for(GSSAccumulator acc: metricsData.get("CoolingDevice")){
+			for(DCwormsAccumulator acc: metricsData.get("CoolingDevice")){
 				coolingDevicePower = coolingDevicePower + acc.getSum();
 			}
@@ -237,5 +236,5 @@
 			
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Room")){
+			for(DCwormsAccumulator acc: metricsData.get("Room")){
 				roomPower = roomPower + acc.getSum();
 			}
@@ -252,5 +251,5 @@
 		try{
 			double itComputingEnergy = 0;
-			for(GSSAccumulator acc: metricsData.get("Processor_CALC")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor_CALC")){
 				itComputingEnergy = itComputingEnergy + acc.getSum();
 			}
Index: DCWoRMS/branches/coolemall/src/simulator/stats/SimulationStatistics.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/SimulationStatistics.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/SimulationStatistics.java	(revision 1396)
@@ -44,5 +44,5 @@
 	public String getOutputFolderName();
 
-	public GSSAccumulator getStats(String resourcesTotalLoad);
+	public DCwormsAccumulator getStats(String resourcesTotalLoad);
 
 	public boolean accumulatedStats();
Index: DCWoRMS/branches/coolemall/src/simulator/stats/MetricsCalculator.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/MetricsCalculator.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/MetricsCalculator.java	(revision 1396)
@@ -10,7 +10,7 @@
 	public List<MetricsStats> calulateMetrics();
 	
-	public void addMetricsData(String resourceTypeName, GSSAccumulator resourceEnergyAccumulator);
+	public void addMetricsData(String resourceTypeName, DCwormsAccumulator resourceEnergyAccumulator);
 	
-	public Map<String, List<GSSAccumulator>> getMetricsData();
+	public Map<String, List<DCwormsAccumulator>> getMetricsData();
 	
 }
Index: DCWoRMS/branches/coolemall/src/simulator/stats/AccumulatedStatistics.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/AccumulatedStatistics.java	(revision 481)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/AccumulatedStatistics.java	(revision 1396)
@@ -10,5 +10,4 @@
 import java.util.List;
 
-import simulator.stats.implementation.DCWormsStatistics;
 import gridsim.Accumulator;
 
@@ -50,16 +49,16 @@
 		}
 		
-		GSSAccumulator resourceLoad = getAccumulatedResourceLoad();
-		GSSAccumulator reservationLoad = getAccumulatedReservationLoad();
-		GSSAccumulator makespan = getAccumulatedMakespan();
-		GSSAccumulator taskExecutionTime = getAccumulatedJobExecutionTime();
-		GSSAccumulator taskQueueLength = getAccumulatedQueueJobCount();
-		GSSAccumulator taskCompletionTime = getAccumulatedCompletionTime();
-		GSSAccumulator taskWaitingTime = getAccumulatedWaitingTime();
-		GSSAccumulator taskFlowTime = getAccumulatedJobFlowTime();
-		GSSAccumulator taskLateness = getAccumulatedLateness();
-		GSSAccumulator delayedTasks = getAccumulatedDelayedTasks();
-		GSSAccumulator taskTardiness = getAccumulatedTardiness();
-		GSSAccumulator failedRequests = getAccumulatedFailedRequests();
+		DCwormsAccumulator resourceLoad = getAccumulatedResourceLoad();
+		DCwormsAccumulator reservationLoad = getAccumulatedReservationLoad();
+		DCwormsAccumulator makespan = getAccumulatedMakespan();
+		DCwormsAccumulator taskExecutionTime = getAccumulatedJobExecutionTime();
+		DCwormsAccumulator taskQueueLength = getAccumulatedQueueJobCount();
+		DCwormsAccumulator taskCompletionTime = getAccumulatedCompletionTime();
+		DCwormsAccumulator taskWaitingTime = getAccumulatedWaitingTime();
+		DCwormsAccumulator taskFlowTime = getAccumulatedJobFlowTime();
+		DCwormsAccumulator taskLateness = getAccumulatedLateness();
+		DCwormsAccumulator delayedTasks = getAccumulatedDelayedTasks();
+		DCwormsAccumulator taskTardiness = getAccumulatedTardiness();
+		DCwormsAccumulator failedRequests = getAccumulatedFailedRequests();
 		
 		out.print("Delayed tasks (accumulated)");
@@ -91,8 +90,8 @@
 	}
 
-	public GSSAccumulator getAccumulatedResourceLoad() {
-		GSSAccumulator resourceMeanLoad = new GSSAccumulator();	
-		for (SimulationStatistics simStat : simulations) {
-			GSSAccumulator simulationResTotalLoad = simStat.getStats(SimulationStatistics.RESOURCES_TOTAL_LOAD); 
+	public DCwormsAccumulator getAccumulatedResourceLoad() {
+		DCwormsAccumulator resourceMeanLoad = new DCwormsAccumulator();	
+		for (SimulationStatistics simStat : simulations) {
+			DCwormsAccumulator simulationResTotalLoad = simStat.getStats(SimulationStatistics.RESOURCES_TOTAL_LOAD); 
 			resourceMeanLoad.add(simulationResTotalLoad.getMean());
 		}
@@ -100,6 +99,6 @@
 	}
 
-	public GSSAccumulator getAccumulatedReservationLoad(){
-		GSSAccumulator reservationMean = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedReservationLoad(){
+		DCwormsAccumulator reservationMean = new DCwormsAccumulator();
 		for (SimulationStatistics simStat : simulations) {
 			Accumulator simulationResvTotalLoad = simStat.getStats(SimulationStatistics.RESOURCES_RESERVATION_LOAD);
@@ -119,6 +118,6 @@
 	}*/
 
-	public GSSAccumulator getAccumulatedJobFlowTime() {
-		GSSAccumulator meanJobFlowTime = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedJobFlowTime() {
+		DCwormsAccumulator meanJobFlowTime = new DCwormsAccumulator();
 		for (SimulationStatistics simStat : simulations) {
 			Accumulator simulationJobFlowTime = simStat.getStats(SimulationStatistics.TASK_FLOW_TIME);
@@ -128,6 +127,6 @@
 	}
 
-	public GSSAccumulator getAccumulatedLateness() {
-		GSSAccumulator meanLateness = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedLateness() {
+		DCwormsAccumulator meanLateness = new DCwormsAccumulator();
 		for (SimulationStatistics simStat : simulations) {
 			Accumulator simulationLateness = simStat.getStats(SimulationStatistics.TASK_LATENESS);
@@ -137,6 +136,6 @@
 	}
 
-	public GSSAccumulator getAccumulatedFailedRequests() {
-		GSSAccumulator meanFailedRequests = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedFailedRequests() {
+		DCwormsAccumulator meanFailedRequests = new DCwormsAccumulator();
 		for (SimulationStatistics simStat : simulations) {
 			Accumulator simulationFailedRequestes = simStat.getStats(SimulationStatistics.FAILED_REQUESTS);
@@ -146,6 +145,6 @@
 	}
 
-	public GSSAccumulator getAccumulatedTardiness() {
-		GSSAccumulator meanTardiness = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedTardiness() {
+		DCwormsAccumulator meanTardiness = new DCwormsAccumulator();
 		for (SimulationStatistics simStat : simulations) {
 			Accumulator simulationJobTardiness = simStat.getStats(SimulationStatistics.TASK_TARDINESS);
@@ -155,6 +154,6 @@
 	}
 
-	public GSSAccumulator getAccumulatedDelayedTasks() {
-		GSSAccumulator delayedTasks = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedDelayedTasks() {
+		DCwormsAccumulator delayedTasks = new DCwormsAccumulator();
 		for (SimulationStatistics simStat : simulations) {
 			Accumulator simulationDelayedTasks = simStat.getStats(SimulationStatistics.DELAYED_TASKS);
@@ -164,6 +163,6 @@
 	}
 
-	public GSSAccumulator getAccumulatedCompletionTime() {
-		GSSAccumulator meanJobCompletionTime = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedCompletionTime() {
+		DCwormsAccumulator meanJobCompletionTime = new DCwormsAccumulator();
 		
 		for (SimulationStatistics simStat : simulations) {
@@ -174,6 +173,6 @@
 	}
 
-	public GSSAccumulator getAccumulatedMakespan() {
-		GSSAccumulator meanMakespan = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedMakespan() {
+		DCwormsAccumulator meanMakespan = new DCwormsAccumulator();
 		for (SimulationStatistics simStat : simulations) {
 			meanMakespan.add(simStat.getStats(SimulationStatistics.MAKESPAN).getMean());
@@ -182,6 +181,6 @@
 	}
 
-	public GSSAccumulator getAccumulatedWaitingTime() {
-		GSSAccumulator meanWaitingTime = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedWaitingTime() {
+		DCwormsAccumulator meanWaitingTime = new DCwormsAccumulator();
 		for (SimulationStatistics simStat : simulations)
 			meanWaitingTime.add(simStat.getStats(SimulationStatistics.TASK_WAITING_TIME).getMean());
@@ -189,6 +188,6 @@
 	}
 
-	public GSSAccumulator getAccumulatedJobExecutionTime() {
-		GSSAccumulator meanJobExecutionTime = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedJobExecutionTime() {
+		DCwormsAccumulator meanJobExecutionTime = new DCwormsAccumulator();
 		for (SimulationStatistics simStat : simulations)
 			meanJobExecutionTime.add(simStat.getStats(SimulationStatistics.TASK_EXECUTION_TIME).getMean());
@@ -196,6 +195,6 @@
 	}
 
-	public GSSAccumulator getAccumulatedQueueJobCount() {
-		GSSAccumulator meanQueuJobCount = new GSSAccumulator();
+	public DCwormsAccumulator getAccumulatedQueueJobCount() {
+		DCwormsAccumulator meanQueuJobCount = new DCwormsAccumulator();
 		for (SimulationStatistics simStat : simulations)
 			meanQueuJobCount.add(simStat.getStats(SimulationStatistics.RESOURCES_QUEUE_LENGTH).getMean());
Index: DCWoRMS/branches/coolemall/src/simulator/stats/AbstractMetricsCalculator.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/AbstractMetricsCalculator.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/AbstractMetricsCalculator.java	(revision 1396)
@@ -13,5 +13,5 @@
 	protected static final double SEC_IN_HOUR = 3600;
 	
-	protected Map<String, List<GSSAccumulator>> metricsData = new HashMap<String, List<GSSAccumulator>>();
+	protected Map<String, List<DCwormsAccumulator>> metricsData = new HashMap<String, List<DCwormsAccumulator>>();
 
 	protected long startTime;
@@ -28,8 +28,8 @@
 	abstract public List<MetricsStats> calulateMetrics();
 	
-	public void addMetricsData(String resourceTypeName, GSSAccumulator resourceEnergyAccumulator){
-		List<GSSAccumulator> resourceEnergyAccumulatorList = metricsData.get(resourceTypeName);
+	public void addMetricsData(String resourceTypeName, DCwormsAccumulator resourceEnergyAccumulator){
+		List<DCwormsAccumulator> resourceEnergyAccumulatorList = metricsData.get(resourceTypeName);
 		if(resourceEnergyAccumulatorList == null){
-			resourceEnergyAccumulatorList = new ArrayList<GSSAccumulator>();
+			resourceEnergyAccumulatorList = new ArrayList<DCwormsAccumulator>();
 		}
 		resourceEnergyAccumulatorList.add(resourceEnergyAccumulator);
@@ -37,5 +37,5 @@
 	}
 	
-	public Map<String, List<GSSAccumulator>> getMetricsData(){
+	public Map<String, List<DCwormsAccumulator>> getMetricsData(){
 		return metricsData;
 	}
Index: DCWoRMS/branches/coolemall/src/simulator/stats/implementation/AccumulatedResourceStats.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/implementation/AccumulatedResourceStats.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/implementation/AccumulatedResourceStats.java	(revision 1396)
@@ -1,5 +1,5 @@
 package simulator.stats.implementation;
 
-import simulator.stats.GSSAccumulator;
+import simulator.stats.DCwormsAccumulator;
 import simulator.stats.implementation.out.StatsSerializer;
 
@@ -12,6 +12,6 @@
 
 	// accumulated resource statistic
-	protected GSSAccumulator resourceLoad;
-	protected GSSAccumulator resourceReservationLoad;
+	protected DCwormsAccumulator resourceLoad;
+	protected DCwormsAccumulator resourceReservationLoad;
 	protected String resourceName;
 
@@ -21,6 +21,6 @@
 	public AccumulatedResourceStats(String resourceName) {
 		this.resourceName = resourceName;
-		this.resourceLoad = new GSSAccumulator();
-		this.resourceReservationLoad = new GSSAccumulator();
+		this.resourceLoad = new DCwormsAccumulator();
+		this.resourceReservationLoad = new DCwormsAccumulator();
 	}
 
@@ -37,9 +37,9 @@
 	}
 
-	public GSSAccumulator getResourceLoad() {
+	public DCwormsAccumulator getResourceLoad() {
 		return this.resourceLoad;
 	}
 
-	public GSSAccumulator getResourceReservationLoad() {
+	public DCwormsAccumulator getResourceReservationLoad() {
 		return this.resourceReservationLoad;
 	}
Index: DCWoRMS/branches/coolemall/src/simulator/stats/implementation/TaskStats.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/implementation/TaskStats.java	(revision 1362)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/implementation/TaskStats.java	(revision 1396)
@@ -108,5 +108,5 @@
 		long previousTimestamp = 0;		
 		int previousStatus = DCWormsTags.CREATED;
-		for(ExecutionHistoryItem execHistItem: task.getExecHistory()){
+		for(ExecutionHistoryItem execHistItem: task.getExecutionHistory()){
 			if(previousStatus == DCWormsTags.INEXEC){
 				executionTime = executionTime  + (execHistItem.getTimeStamp().getMillis()/1000 - previousTimestamp);
Index: DCWoRMS/branches/coolemall/src/simulator/stats/implementation/out/CoolEmAllStringSerializer.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/implementation/out/CoolEmAllStringSerializer.java	(revision 1207)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/implementation/out/CoolEmAllStringSerializer.java	(revision 1396)
@@ -8,5 +8,5 @@
 
 import schedframe.resources.CoolEmAllResourceType;
-import schedframe.resources.ResourceHistoryChanges;
+import schedframe.resources.ResourceHistoryItem;
 import schedframe.resources.StandardResourceType;
 import simulator.stats.implementation.MetricsStats;
@@ -311,10 +311,10 @@
 		df.setGroupingUsed(false);
 		
-		for(ResourceHistoryChanges rhc: arg.getResHistChanges()){
+		for(ResourceHistoryItem rhc: arg.getResourceHistory()){
 			buffer.append(rhc.getTimestamp());
 			buffer.append(fieldSeparator);
 			buffer.append(rhc.getResourceName());
 			buffer.append(fieldSeparator);
-			buffer.append(rhc.getOperation());
+			buffer.append(rhc.getAction());
 			buffer.append(fieldSeparator);
 			buffer.append(rhc.getParamter());
Index: DCWoRMS/branches/coolemall/src/simulator/stats/implementation/ResourceHistoryStats.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/implementation/ResourceHistoryStats.java	(revision 1207)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/implementation/ResourceHistoryStats.java	(revision 1396)
@@ -3,5 +3,5 @@
 import java.util.List;
 
-import schedframe.resources.ResourceHistoryChanges;
+import schedframe.resources.ResourceHistoryItem;
 import simulator.stats.implementation.out.StatsSerializer;
 
@@ -10,11 +10,9 @@
 	private String[] headers = {"timestamp", "resourceName", "operation", "parameter" };
 
-	protected List<ResourceHistoryChanges> resHistChanges;
+	protected List<ResourceHistoryItem> resHist;
 	
-	public ResourceHistoryStats(List<ResourceHistoryChanges> resHistChanges) {
-		super();
-		this.resHistChanges = resHistChanges;
+	public ResourceHistoryStats(List<ResourceHistoryItem> resHist) {
+		this.resHist = resHist;
 	}
-
 
 	public Object serialize(StatsSerializer serializer) {
@@ -26,7 +24,6 @@
 	}
 
-
-	public List<ResourceHistoryChanges> getResHistChanges() {
-		return resHistChanges;
+	public List<ResourceHistoryItem> getResourceHistory() {
+		return resHist;
 	}
 }
Index: DCWoRMS/branches/coolemall/src/simulator/stats/implementation/DCWormsStatistics.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/implementation/DCWormsStatistics.java	(revision 1374)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/implementation/DCWormsStatistics.java	(revision 1396)
@@ -59,9 +59,7 @@
 import schedframe.ExecutablesList;
 import schedframe.SimulatedEnvironment;
-import schedframe.exceptions.ResourceException;
+import schedframe.resources.CustomResourceType;
 import schedframe.resources.ResourceType;
-import schedframe.resources.UserResourceType;
 import schedframe.resources.computing.ComputingResource;
-import schedframe.resources.computing.Processor;
 import schedframe.resources.computing.extensions.Extension;
 import schedframe.resources.computing.extensions.ExtensionList;
@@ -69,5 +67,5 @@
 import schedframe.resources.computing.profiles.energy.EnergyExtension;
 import schedframe.resources.computing.profiles.energy.MeasurementHistory;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirFlowValue;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowValue;
 import schedframe.resources.computing.profiles.energy.power.PowerUsage;
 import schedframe.resources.computing.profiles.energy.thermal.TemperatureValue;
@@ -80,5 +78,5 @@
 import schedframe.resources.units.StandardResourceUnitName;
 import schedframe.scheduling.ExecutionHistoryItem;
-import schedframe.scheduling.ResourceHistoryItem;
+import schedframe.scheduling.ResourceItem;
 import schedframe.scheduling.Scheduler;
 import schedframe.scheduling.manager.tasks.JobRegistry;
@@ -91,6 +89,6 @@
 import simulator.GenericUser;
 import simulator.stats.CoolEmAllMetricsCalculator;
+import simulator.stats.DCwormsAccumulator;
 import simulator.stats.DCwormsMetricsCalculator;
-import simulator.stats.GSSAccumulator;
 import simulator.stats.MetricsCalculator;
 import simulator.stats.SimulationStatistics;
@@ -124,5 +122,5 @@
 	protected static final String RESOURCEUTILIZATION_STATISTICS_OUTPUT_FILE_NAME = "ResourceUtilization.txt";
 	protected static final String ENERGYUSAGE_STATISTICS_OUTPUT_FILE_NAME = "EnergyUsage.txt";
-	protected static final String AIRFLOW_STATISTICS_OUTPUT_FILE_NAME = "AirThroughput.txt";
+	protected static final String AIRFLOW_STATISTICS_OUTPUT_FILE_NAME = "Airflow.txt";
 	protected static final String TEMPERATURE_STATISTICS_OUTPUT_FILE_NAME = "Temperature.txt";
 	protected static final String USEFUL_WORK_STATISTICS_OUTPUT_FILE_NAME = "UsefulWork.txt";
@@ -144,5 +142,5 @@
 
 	protected GSSAccumulatorsStats accStats;
-	protected Map<String, GSSAccumulator> statsData;
+	protected Map<String, DCwormsAccumulator> statsData;
 	
 	protected GenericUser users;
@@ -232,5 +230,5 @@
 		task_processorsMap = new HashMap<String, Set<ComputingResource>>();
 		accStats = new GSSAccumulatorsStats();
-		statsData = new HashMap<String, GSSAccumulator>();
+		statsData = new HashMap<String, DCwormsAccumulator>();
 		
 		this.serializer = new StringSerializer();		
@@ -298,5 +296,5 @@
 				cStats.add(Stats.chartEnergy);
 			cStats.add(Stats.textAirFlow);
-			if(ArrayUtils.contains(configuration.resForAirFlowChart, resourceTypeName))
+			if(ArrayUtils.contains(configuration.resForAirflowChart, resourceTypeName))
 				cStats.add(Stats.chartAirFlow);
 			cStats.add(Stats.textTemperature);
@@ -420,10 +418,10 @@
 		List<ComputingResource> compResources = null;
 		for(String resourceTypeName: resourceController.getComputingResourceLayers()){
-			GSSAccumulator resourceEnergyAccumulator = new GSSAccumulator();
-			GSSAccumulator maxResourceEnergyAccumulator = new GSSAccumulator();
-			GSSAccumulator calculationsEnergyAccumulator = new GSSAccumulator();
+			DCwormsAccumulator resourceEnergyAccumulator = new DCwormsAccumulator();
+			DCwormsAccumulator maxResourceEnergyAccumulator = new DCwormsAccumulator();
+			DCwormsAccumulator calculationsEnergyAccumulator = new DCwormsAccumulator();
 			compResources = new ArrayList<ComputingResource>();
 			for(ComputingResource compRes: resourceController.getComputingResources() ){
-				compResources.addAll(compRes.getDescendantsByType(new UserResourceType(resourceTypeName)));
+				compResources.addAll(compRes.getDescendantsByType(new CustomResourceType(resourceTypeName)));
 			}
 			if(resourceController.getComputingResources().get(0).getType().getName().equals(resourceTypeName))
@@ -526,5 +524,5 @@
 						
 						for(Device device: compResource.getResourceCharacteristic().getDevices()){
-							GSSAccumulator devAccumulator = new GSSAccumulator();
+							DCwormsAccumulator devAccumulator = new DCwormsAccumulator();
 							ResourcePowerStats deviceEnergyUsage = gatherResourcePowerConsumptionStats(device);
 							deviceEnergyUsage.setMeanValue(calculateMeanValue(deviceEnergyUsage));
@@ -592,5 +590,5 @@
 							}
 							
-							if(ArrayUtils.contains(configuration.resForAirFlowChart, device.getType().getName())){
+							if(ArrayUtils.contains(configuration.resForAirflowChart, device.getType().getName())){
 								if (configuration.creatediagrams_resairflow) {
 									createResourceAirFlowDiagramData(deviceAirFlow);
@@ -767,5 +765,5 @@
 
 
-			LinkedList<ResourceHistoryItem> resourceHistory = exec.getAllocatedResources();
+			LinkedList<ResourceItem> resourceHistory = exec.getAllocatedResources();
 			if(resourceHistory.size() == 0)
 				continue;
@@ -805,12 +803,12 @@
 
 					try{
-						double usefulWork = execTask.getResourceConsumptionProfile().getUsefulWork()/pes.size();
+						double usefulWork = execTask.getExecutionProfile().getUsefulWork()/pes.size();
 						//double usefulWork = gatherUsefulWorkStats(pe).getValue();
-						GSSAccumulator uwAcc;
+						DCwormsAccumulator uwAcc;
 						if(metCalc.getMetricsData().containsKey("UW_" + pe.getFullName())){
 							uwAcc = metCalc.getMetricsData().get("UW_" + pe.getFullName()).get(0);
 							uwAcc.add(usefulWork);
 						} else {
-							uwAcc = new GSSAccumulator();
+							uwAcc = new DCwormsAccumulator();
 							uwAcc.add(usefulWork);
 							metCalc.addMetricsData("UW_" + pe.getFullName(), uwAcc);
@@ -832,14 +830,14 @@
 			Executable exec = (Executable) execTask;
 
-			LinkedList<ResourceHistoryItem> resourceHistory = exec.getAllocatedResources();
+			LinkedList<ResourceItem> resourceHistory = exec.getAllocatedResources();
 			if(resourceHistory.size() == 0)
 				continue;
 
 			for(int i = 0; i < resourceHistory .size(); i++){
-				ResourceHistoryItem resHistItem = resourceHistory.get(i);
+				ResourceItem resHistItem = resourceHistory.get(i);
 				Map<ResourceUnitName, ResourceUnit> res = resHistItem.getResourceUnits();
 				ResourceUnit resUnit = res.get(StandardResourceUnitName.PE);
 				//ProcessingElements pes = (ProcessingElements) resUnit ;
-				LinkedList<ExecutionHistoryItem> execHistory = exec.getExecHistory();
+				LinkedList<ExecutionHistoryItem> execHistory = exec.getExecutionHistory();
 				long st = -1, et;
 				for(int j = 0; j < execHistory .size(); j++){
@@ -893,12 +891,12 @@
 
 								try{
-									double usefulWork = execTask.getResourceConsumptionProfile().getUsefulWork()/pes.size();
+									double usefulWork = execTask.getExecutionProfile().getUsefulWork()/pes.size();
 									usefulWork = ((et - st) / (1000 * getExecutionTime(execTask))) * usefulWork;
-									GSSAccumulator uwAcc;
+									DCwormsAccumulator uwAcc;
 									if(metCalc.getMetricsData().containsKey("UW_" + pe.getFullName())){
 										uwAcc = metCalc.getMetricsData().get("UW_" + pe.getFullName()).get(0);
 										uwAcc.add(usefulWork);
 									} else {
-										uwAcc = new GSSAccumulator();
+										uwAcc = new DCwormsAccumulator();
 										uwAcc.add(usefulWork);
 										metCalc.addMetricsData("UW_" + pe.getFullName(), uwAcc);
@@ -922,5 +920,5 @@
 		long previousTimestamp = 0;
 		int previousStatus = DCWormsTags.CREATED;
-		for(ExecutionHistoryItem execHistItem: execTask.getExecHistory()){
+		for(ExecutionHistoryItem execHistItem: execTask.getExecutionHistory()){
 			if(previousStatus == DCWormsTags.INEXEC){
 				executionTime = executionTime  + (execHistItem.getTimeStamp().getMillis()/1000 - previousTimestamp);
@@ -1033,5 +1031,5 @@
 		JobRegistry jr = new JobRegistryImpl(compResource.getFullName());
 		for(ExecTask task: jr.getFinishedTasks()){
-			usefulWork = usefulWork + task.getResourceConsumptionProfile().getUsefulWork();
+			usefulWork = usefulWork + task.getExecutionProfile().getUsefulWork();
 		}
 		ResourceUsefulWorkStats usefulWorkStats = new ResourceUsefulWorkStats(compResource.getFullName(), compResource.getType(), usageType, usefulWork, endSimulationTime);
@@ -1175,10 +1173,10 @@
 					if(ee.getAirFlowProfile() == null)
 						break;
-					List<AirFlowValue> airFlowHistory = ee.getAirFlowProfile().getAirThroughputHistory();
+					List<AirflowValue> airFlowHistory = ee.getAirFlowProfile().getAirflowHistory();
 					if(airFlowHistory.size() == 0)
 						break;
 					long endSimulationTime = DateTimeUtilsExt.currentTimeMillis();
-					airFlowHistory.add(new AirFlowValue(endSimulationTime, ee.getAirFlowProfile().getAirThroughputHistory().get(ee.getAirFlowProfile().getAirThroughputHistory().size()-1).getValue()));
-					for(AirFlowValue af:airFlowHistory){
+					airFlowHistory.add(new AirflowValue(endSimulationTime, ee.getAirFlowProfile().getAirflowHistory().get(ee.getAirFlowProfile().getAirflowHistory().size()-1).getValue()));
+					for(AirflowValue af:airFlowHistory){
 						airFlow.put(af.getTimestamp(), af.getValue());
 					}
@@ -1402,5 +1400,5 @@
 				resourceAirFlowDiagram = getResourceDynamicDiagram(resourceAirFlowDiagrams.get(resType), simulationTime, chartName,
 						subtitle, axisName);
-				if (!saveXYPlotChart(resourceAirFlowDiagram, fileName + "AirThroughput_" + resType))
+				if (!saveXYPlotChart(resourceAirFlowDiagram, fileName + "Airflow_" + resType))
 					return false;
 			}
@@ -2040,5 +2038,5 @@
 	}
 
-	public GSSAccumulator getStats(String name) {
+	public DCwormsAccumulator getStats(String name) {
 		return statsData.get(name);
 	}
Index: DCWoRMS/branches/coolemall/src/simulator/stats/implementation/JobStats.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/implementation/JobStats.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/implementation/JobStats.java	(revision 1396)
@@ -1,7 +1,5 @@
 package simulator.stats.implementation;
 
-import java.io.PrintStream;
-
-import simulator.stats.GSSAccumulator;
+import simulator.stats.DCwormsAccumulator;
 import simulator.stats.implementation.out.StatsSerializer;
 
@@ -14,13 +12,13 @@
 
 	protected String jobID;
-	protected GSSAccumulator meanTaskCompletionTime;
-	protected GSSAccumulator meanTaskExecutionTime;
-	protected GSSAccumulator meanTaskStartTime;
-	protected GSSAccumulator meanTaskFlowTime;
-	protected GSSAccumulator meanTaskWaitingTime;
-	protected GSSAccumulator meanTaskGQ_WaitingTime;
-	protected GSSAccumulator lateness;
-	protected GSSAccumulator tardiness;
-	protected GSSAccumulator makespan;
+	protected DCwormsAccumulator meanTaskCompletionTime;
+	protected DCwormsAccumulator meanTaskExecutionTime;
+	protected DCwormsAccumulator meanTaskStartTime;
+	protected DCwormsAccumulator meanTaskFlowTime;
+	protected DCwormsAccumulator meanTaskWaitingTime;
+	protected DCwormsAccumulator meanTaskGQ_WaitingTime;
+	protected DCwormsAccumulator lateness;
+	protected DCwormsAccumulator tardiness;
+	protected DCwormsAccumulator makespan;
 
 	JobStats(String jobID) {
@@ -35,13 +33,13 @@
 
 	private void init() {
-		this.meanTaskCompletionTime = new GSSAccumulator();
-		this.meanTaskExecutionTime = new GSSAccumulator();
-		this.meanTaskStartTime = new GSSAccumulator();
-		this.meanTaskFlowTime = new GSSAccumulator();
-		this.meanTaskWaitingTime = new GSSAccumulator();
-		this.meanTaskGQ_WaitingTime = new GSSAccumulator();
-		this.lateness = new GSSAccumulator();
-		this.tardiness = new GSSAccumulator();
-		this.makespan = new GSSAccumulator();
+		this.meanTaskCompletionTime = new DCwormsAccumulator();
+		this.meanTaskExecutionTime = new DCwormsAccumulator();
+		this.meanTaskStartTime = new DCwormsAccumulator();
+		this.meanTaskFlowTime = new DCwormsAccumulator();
+		this.meanTaskWaitingTime = new DCwormsAccumulator();
+		this.meanTaskGQ_WaitingTime = new DCwormsAccumulator();
+		this.lateness = new DCwormsAccumulator();
+		this.tardiness = new DCwormsAccumulator();
+		this.makespan = new DCwormsAccumulator();
 	}
 
@@ -50,37 +48,37 @@
 	}
 
-	public GSSAccumulator getMeanTaskCompletionTime() {
+	public DCwormsAccumulator getMeanTaskCompletionTime() {
 		return meanTaskCompletionTime;
 	}
 
-	public GSSAccumulator getMeanTaskExecutionTime() {
+	public DCwormsAccumulator getMeanTaskExecutionTime() {
 		return meanTaskExecutionTime;
 	}
 
-	public GSSAccumulator getMeanTaskStartTime() {
+	public DCwormsAccumulator getMeanTaskStartTime() {
 		return meanTaskStartTime;
 	}
 
-	public GSSAccumulator getMeanTaskFlowTime() {
+	public DCwormsAccumulator getMeanTaskFlowTime() {
 		return meanTaskFlowTime;
 	}
 
-	public GSSAccumulator getMeanTaskWaitingTime() {
+	public DCwormsAccumulator getMeanTaskWaitingTime() {
 		return meanTaskWaitingTime;
 	}
 
-	public GSSAccumulator getMeanTaskGQ_WaitingTime() {
+	public DCwormsAccumulator getMeanTaskGQ_WaitingTime() {
 		return meanTaskGQ_WaitingTime;
 	}
 
-	public GSSAccumulator getLateness() {
+	public DCwormsAccumulator getLateness() {
 		return lateness;
 	}
 
-	public GSSAccumulator getTardiness() {
+	public DCwormsAccumulator getTardiness() {
 		return tardiness;
 	}
 
-	public GSSAccumulator getMakespan() {
+	public DCwormsAccumulator getMakespan() {
 		return makespan;
 	}
Index: DCWoRMS/branches/coolemall/src/simulator/stats/implementation/GSSAccumulatorsStats.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/implementation/GSSAccumulatorsStats.java	(revision 1277)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/implementation/GSSAccumulatorsStats.java	(revision 1396)
@@ -1,26 +1,26 @@
 package simulator.stats.implementation;
 
-import simulator.stats.GSSAccumulator;
+import simulator.stats.DCwormsAccumulator;
 import simulator.stats.implementation.out.StatsSerializer;
 
 public class GSSAccumulatorsStats implements StatsInterface {
 
-	public GSSAccumulator meanTotalOccupancy;
-	public GSSAccumulator meanTotalLoad;
-	public GSSAccumulator meanQueueLength;
-	public GSSAccumulator meanEnergyUsage;
-	public GSSAccumulator meanAirFlow;
-	public GSSAccumulator meanTemperature;
+	public DCwormsAccumulator meanTotalOccupancy;
+	public DCwormsAccumulator meanTotalLoad;
+	public DCwormsAccumulator meanQueueLength;
+	public DCwormsAccumulator meanEnergyUsage;
+	public DCwormsAccumulator meanAirFlow;
+	public DCwormsAccumulator meanTemperature;
 
-	public GSSAccumulator meanTaskStartTime;
-	public GSSAccumulator meanTaskCompletionTime;
-	public GSSAccumulator meanTaskExecutionTime;
-	public GSSAccumulator meanTaskWaitingTime;
-	public GSSAccumulator meanTaskFlowTime;
-	public GSSAccumulator lateness;
-	public GSSAccumulator tardiness;
-	public GSSAccumulator delayedTasks;
-	public GSSAccumulator failedRequests;
-	public GSSAccumulator makespan;
+	public DCwormsAccumulator meanTaskStartTime;
+	public DCwormsAccumulator meanTaskCompletionTime;
+	public DCwormsAccumulator meanTaskExecutionTime;
+	public DCwormsAccumulator meanTaskWaitingTime;
+	public DCwormsAccumulator meanTaskFlowTime;
+	public DCwormsAccumulator lateness;
+	public DCwormsAccumulator tardiness;
+	public DCwormsAccumulator delayedTasks;
+	public DCwormsAccumulator failedRequests;
+	public DCwormsAccumulator makespan;
 
 	private String[] headers = { "Resource name", "mean", "stdev", "variance",
@@ -28,21 +28,21 @@
 
 	public GSSAccumulatorsStats() {
-		meanTotalOccupancy = new GSSAccumulator();
-		meanTotalLoad = new GSSAccumulator();
-		meanQueueLength = new GSSAccumulator();
-		meanEnergyUsage = new GSSAccumulator(); 
-		meanAirFlow = new GSSAccumulator(); 
-		meanTemperature = new GSSAccumulator(); 
+		meanTotalOccupancy = new DCwormsAccumulator();
+		meanTotalLoad = new DCwormsAccumulator();
+		meanQueueLength = new DCwormsAccumulator();
+		meanEnergyUsage = new DCwormsAccumulator(); 
+		meanAirFlow = new DCwormsAccumulator(); 
+		meanTemperature = new DCwormsAccumulator(); 
 		
-		meanTaskStartTime = new GSSAccumulator();
-		meanTaskCompletionTime = new GSSAccumulator();
-		meanTaskExecutionTime = new GSSAccumulator();
-		meanTaskWaitingTime = new GSSAccumulator();
-		meanTaskFlowTime = new GSSAccumulator();
-		lateness = new GSSAccumulator();
-		tardiness = new GSSAccumulator();
-		delayedTasks = new GSSAccumulator();
-		failedRequests = new GSSAccumulator();
-		makespan = new GSSAccumulator();
+		meanTaskStartTime = new DCwormsAccumulator();
+		meanTaskCompletionTime = new DCwormsAccumulator();
+		meanTaskExecutionTime = new DCwormsAccumulator();
+		meanTaskWaitingTime = new DCwormsAccumulator();
+		meanTaskFlowTime = new DCwormsAccumulator();
+		lateness = new DCwormsAccumulator();
+		tardiness = new DCwormsAccumulator();
+		delayedTasks = new DCwormsAccumulator();
+		failedRequests = new DCwormsAccumulator();
+		makespan = new DCwormsAccumulator();
 	}
 
Index: DCWoRMS/branches/coolemall/src/simulator/stats/StatisticsInfo.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/StatisticsInfo.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/StatisticsInfo.java	(revision 1396)
@@ -9,11 +9,11 @@
 
 	/** The mean value */
-	protected GSSAccumulator mean;
+	protected DCwormsAccumulator mean;
 	/** The standard deviation value */
-	protected GSSAccumulator stdev;
+	protected DCwormsAccumulator stdev;
 	/** The minimal value */
-	protected GSSAccumulator max;
+	protected DCwormsAccumulator max;
 	/** The maximal value */
-	protected GSSAccumulator min;
+	protected DCwormsAccumulator min;
 	/**
 	 * @param mean
@@ -22,5 +22,5 @@
 	 * @param min
 	 */
-	public StatisticsInfo(GSSAccumulator mean, GSSAccumulator stdev, GSSAccumulator max, GSSAccumulator min) {
+	public StatisticsInfo(DCwormsAccumulator mean, DCwormsAccumulator stdev, DCwormsAccumulator max, DCwormsAccumulator min) {
 		this.mean = mean;
 		this.stdev = stdev;
@@ -31,5 +31,5 @@
 	 * @return the maximal value
 	 */
-	public GSSAccumulator getMax() {
+	public DCwormsAccumulator getMax() {
 		return max;
 	}
@@ -37,5 +37,5 @@
 	 * @return the mean value
 	 */
-	public GSSAccumulator getMean() {
+	public DCwormsAccumulator getMean() {
 		return mean;
 	}
@@ -43,5 +43,5 @@
 	 * @return the minimal value
 	 */
-	public GSSAccumulator getMin() {
+	public DCwormsAccumulator getMin() {
 		return min;
 	}
@@ -49,5 +49,5 @@
 	 * @return the standard deviation value
 	 */
-	public GSSAccumulator getStdev() {
+	public DCwormsAccumulator getStdev() {
 		return stdev;
 	}
Index: DCWoRMS/branches/coolemall/src/simulator/stats/CoolEmAllMetricsCalculator.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/CoolEmAllMetricsCalculator.java	(revision 1331)
+++ DCWoRMS/branches/coolemall/src/simulator/stats/CoolEmAllMetricsCalculator.java	(revision 1396)
@@ -51,5 +51,5 @@
 			
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Room")){
+			for(DCwormsAccumulator acc: metricsData.get("Room")){
 				roomPower = roomPower + acc.getSum();
 			}
@@ -66,5 +66,5 @@
 		try{
 			double itComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Processor")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor")){
 				itComputingPower = itComputingPower + acc.getSum();
 			}
@@ -81,13 +81,13 @@
 		try{
 			double totalSitePower = 0; 
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				totalSitePower = totalSitePower + acc.getSum();
 			}
 			double nodeComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Node")){
+			for(DCwormsAccumulator acc: metricsData.get("Node")){
 				nodeComputingPower = nodeComputingPower+ acc.getSum();
 			}
 			double itComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Processor")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor")){
 				itComputingPower = itComputingPower + acc.getSum();
 			}
@@ -105,9 +105,9 @@
 		try{
 			double nodeComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Node")){
+			for(DCwormsAccumulator acc: metricsData.get("Node")){
 				nodeComputingPower = nodeComputingPower+ acc.getSum();
 			}
 			double itComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Processor")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor")){
 				itComputingPower = itComputingPower + acc.getSum();
 			}
@@ -126,10 +126,10 @@
 			
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Room")){
+			for(DCwormsAccumulator acc: metricsData.get("Room")){
 				roomPower = roomPower + acc.getSum();
 			}
 			
 			double totalSitePower = 0;
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				totalSitePower = totalSitePower + acc.getSum();
 			}
@@ -137,9 +137,9 @@
 		
 			double nodeComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Node")){
+			for(DCwormsAccumulator acc: metricsData.get("Node")){
 				nodeComputingPower = nodeComputingPower+ acc.getSum();
 			}
 			double itComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Processor")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor")){
 				itComputingPower = itComputingPower + acc.getSum();
 			}
@@ -159,10 +159,10 @@
 			
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Room")){
+			for(DCwormsAccumulator acc: metricsData.get("Room")){
 				roomPower = roomPower + acc.getSum();
 			}
 			
 			double totalSitePower = 0;
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				totalSitePower = totalSitePower + acc.getSum();
 			}
@@ -183,5 +183,5 @@
 			for(String key: metricsData.keySet()){
 				if(key.contains("UW_")){
-					for(GSSAccumulator acc: metricsData.get(key)){
+					for(DCwormsAccumulator acc: metricsData.get(key)){
 						usefulWork= usefulWork + acc.getSum();
 					}
@@ -203,5 +203,5 @@
 			for(String key: metricsData.keySet()){
 				if(key.contains("/")){
-					for(GSSAccumulator acc: metricsData.get(key)){
+					for(DCwormsAccumulator acc: metricsData.get(key)){
 						usefulWork= usefulWork + acc.getSum();
 					}
@@ -209,5 +209,5 @@
 			}
 			double totalSitePower = 0; 
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				totalSitePower = totalSitePower + acc.getSum();
 			}
@@ -228,5 +228,5 @@
 			double maxPower = 0;
 			
-			for(GSSAccumulator acc: metricsData.get("Rack_MAX")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack_MAX")){
 				maxPower = maxPower + acc.getSum();
 			}
@@ -246,5 +246,5 @@
 			double maxPower = 0;
 			
-			for(GSSAccumulator acc: metricsData.get("Room_MAX")){
+			for(DCwormsAccumulator acc: metricsData.get("Room_MAX")){
 				maxPower = maxPower + acc.getSum();
 			}
@@ -263,19 +263,19 @@
 		try{
 			double inletsPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Inlet")){
+			for(DCwormsAccumulator acc: metricsData.get("Inlet")){
 				inletsPower = inletsPower + acc.getSum();
 			}
 			
 			double outletsPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Outlet")){
+			for(DCwormsAccumulator acc: metricsData.get("Outlet")){
 				outletsPower = outletsPower + acc.getSum();
 			}
 			
 			double nodeComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Node")){
+			for(DCwormsAccumulator acc: metricsData.get("Node")){
 				nodeComputingPower = nodeComputingPower+ acc.getSum();
 			}
 			double itComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Processor")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor")){
 				itComputingPower = itComputingPower + acc.getSum();
 			}
@@ -294,5 +294,5 @@
 		try{
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				roomPower = roomPower + acc.getSum();
 			}
@@ -309,5 +309,5 @@
 		try{
 			double coolingDevicePower = 0;
-			for(GSSAccumulator acc: metricsData.get("CoolingDevice")){
+			for(DCwormsAccumulator acc: metricsData.get("CoolingDevice")){
 				coolingDevicePower = coolingDevicePower + acc.getSum();
 			}
@@ -327,5 +327,5 @@
 			for(String key: metricsData.keySet()){
 				if(key.contains("FlowPump")){
-					for(GSSAccumulator acc: metricsData.get(key)){
+					for(DCwormsAccumulator acc: metricsData.get(key)){
 						flowPump = flowPump + acc.getSum();
 					}
@@ -346,34 +346,34 @@
 		try{
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Room")){
+			for(DCwormsAccumulator acc: metricsData.get("Room")){
 				roomPower = roomPower + acc.getSum();
 			}
 			
 			double totalSitePower = 0;
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				totalSitePower = totalSitePower + acc.getSum();
 			}
 			
 			double coolingDevicePower = 0;
-			for(GSSAccumulator acc: metricsData.get("CoolingDevice")){
+			for(DCwormsAccumulator acc: metricsData.get("CoolingDevice")){
 				coolingDevicePower = coolingDevicePower + acc.getSum();
 			}
 			
 			double inletsPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Inlet")){
+			for(DCwormsAccumulator acc: metricsData.get("Inlet")){
 				inletsPower = inletsPower + acc.getSum();
 			}
 			
 			double outletsPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Outlet")){
+			for(DCwormsAccumulator acc: metricsData.get("Outlet")){
 				outletsPower = outletsPower + acc.getSum();
 			}
 			
 			double nodeComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Node")){
+			for(DCwormsAccumulator acc: metricsData.get("Node")){
 				nodeComputingPower = nodeComputingPower+ acc.getSum();
 			}
 			double itComputingPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Processor")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor")){
 				itComputingPower = itComputingPower + acc.getSum();
 			}
@@ -394,5 +394,5 @@
 			
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Room")){
+			for(DCwormsAccumulator acc: metricsData.get("Room")){
 				roomPower = roomPower + acc.getSum();
 			}
@@ -411,5 +411,5 @@
 			
 			double roomPower = 0;
-			for(GSSAccumulator acc: metricsData.get("Rack")){
+			for(DCwormsAccumulator acc: metricsData.get("Rack")){
 				roomPower = roomPower + acc.getSum();
 			}
@@ -427,5 +427,5 @@
 			double itComputingEnergy = 0;
 			
-			for(GSSAccumulator acc: metricsData.get("Processor_CALC")){
+			for(DCwormsAccumulator acc: metricsData.get("Processor_CALC")){
 				itComputingEnergy = itComputingEnergy + acc.getSum();
 			}
Index: DCWoRMS/branches/coolemall/src/simulator/stats/GSSAccumulator.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/stats/GSSAccumulator.java	(revision 477)
+++ 	(revision )
@@ -1,138 +1,0 @@
-/**
- * 
- */
-package simulator.stats;
-
-import java.io.PrintStream;
-
-import simulator.DataCenterWorkloadSimulator;
-import gridsim.Accumulator;
-
-/**
- * This class temporarily adds new methods to {@link Accumulator} class.
- * 
- * @author Stanislaw Szczepanowski
- * 
- */
-public class GSSAccumulator extends Accumulator {
-
-	public GSSAccumulator() {
-		super();
-	}
-
-	public GSSAccumulator(Accumulator acc) {
-		n_ = acc.getCount();
-		mean_ = acc.getMean();
-		sqrMean_ = acc.getStandardDeviation() + (mean_ * mean_);
-		min_ = acc.getMin();
-		max_ = acc.getMax();
-		last_ = acc.getLast();
-	}
-
-	/**
-	 * This method must be overloaded, since it returns the wrong value.
-	 */
-	public double getStandardDeviation() {
-		return Math.sqrt(getVariance());
-	}
-
-	/**
-	 * Calculates the variance of accumulated items
-	 * 
-	 * @return the Standard Deviation of accumulated items
-	 * @pre $none
-	 * @post $none
-	 */
-	public double getVariance() {
-		return sqrMean_ - (mean_ * mean_);
-	}
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof GSSAccumulator))
-			return false;
-
-		GSSAccumulator otherAcc = (GSSAccumulator) obj;
-		if (Double.compare(this.last_, otherAcc.last_) != 0)
-			return false;
-		if (Double.compare(this.max_, otherAcc.max_) != 0)
-			return false;
-		if (Double.compare(this.mean_, otherAcc.mean_) != 0)
-			return false;
-		if (Double.compare(this.min_, otherAcc.min_) != 0)
-			return false;
-		if (Double.compare(this.n_, otherAcc.n_) != 0)
-			return false;
-		if (Double.compare(this.sqrMean_, otherAcc.sqrMean_) != 0)
-			return false;
-
-		return true;
-	}
-
-	public String toString() {
-		String accumulatorSeparator = ";";
-		StringBuffer buffer = new StringBuffer(50);
-
-		buffer.append(accumulatorSeparator);
-		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-				.getMean()));
-		buffer.append(accumulatorSeparator);
-		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-				.getStandardDeviation()));
-		buffer.append(accumulatorSeparator);
-		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-				.getVariance()));
-		buffer.append(accumulatorSeparator);
-		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-				.getMin()));
-		buffer.append(accumulatorSeparator);
-		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-				.getMax()));
-		buffer.append(accumulatorSeparator);
-		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-				.getSum()));
-		buffer.append(accumulatorSeparator);
-		buffer.append(DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-				.getCount()));
-		buffer.append(accumulatorSeparator);
-
-		return buffer.toString();
-	}
-
-	public String toFormatedString() {
-
-		String accumulatorSeparator = "; ";
-		StringBuffer buffer = new StringBuffer(50);
-
-		buffer.append(accumulatorSeparator);
-		buffer.append(String.format("%16s",
-				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-						.getMean())));
-		buffer.append(accumulatorSeparator);
-		buffer.append(String.format("%16s",
-				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-						.getStandardDeviation())));
-		buffer.append(accumulatorSeparator);
-		buffer.append(String.format("%16s",
-				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-						.getVariance())));
-		buffer.append(accumulatorSeparator);
-		buffer.append(String.format("%16s",
-				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-						.getMin())));
-		buffer.append(accumulatorSeparator);
-		buffer.append(String.format("%16s",
-				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-						.getMax())));
-		buffer.append(accumulatorSeparator);
-		buffer.append(String.format("%16s",
-				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-						.getSum())));
-		buffer.append(accumulatorSeparator);
-		buffer.append(String.format("%16s",
-				DataCenterWorkloadSimulator.DFAULT_NUMBER_FORMAT.format(this
-						.getCount())));
-		buffer.append(accumulatorSeparator);
-
-		return buffer.toString();
-	}
-}
Index: DCWoRMS/branches/coolemall/src/simulator/reader/ResourceReader.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/reader/ResourceReader.java	(revision 1374)
+++ DCWoRMS/branches/coolemall/src/simulator/reader/ResourceReader.java	(revision 1396)
@@ -26,5 +26,4 @@
 import schedframe.Parameters;
 import schedframe.SimulatedEnvironment;
-import schedframe.exceptions.ResourceException;
 import schedframe.resources.CoolEmAllResourceFactory;
 import schedframe.resources.Resource;
Index: DCWoRMS/branches/coolemall/src/simulator/ConfigurationOptions.java
===================================================================
--- DCWoRMS/branches/coolemall/src/simulator/ConfigurationOptions.java	(revision 1299)
+++ DCWoRMS/branches/coolemall/src/simulator/ConfigurationOptions.java	(revision 1396)
@@ -187,5 +187,5 @@
 	
 	public String [] resForEnergyChart;
-	public String [] resForAirFlowChart;
+	public String [] resForAirflowChart;
 	public String [] resForTemperatureChart;
 	public String [] resForUtilizationChart;
@@ -195,5 +195,5 @@
 	public double inletRoomAirTempeature;
 	public double ambientAirTempeature;
-	public double airFlowVolume;
+	public double airflowVolume;
 	public double alpha;
 	
@@ -334,6 +334,6 @@
 		
 		try {
-			co.resForAirFlowChart = bundle.getString(CREATEDIAGRAMS_AIRFLOW).split(";");
-			if(co.resForAirFlowChart.length > 0){
+			co.resForAirflowChart = bundle.getString(CREATEDIAGRAMS_AIRFLOW).split(";");
+			if(co.resForAirflowChart.length > 0){
 				co.creatediagrams_resairflow = true;
 			}
@@ -416,7 +416,7 @@
 		
 		try {
-			co.airFlowVolume = Double.valueOf(bundle.getString(AIR_FLOW_VOLUME)).doubleValue();
-		} catch(MissingResourceException e){
-			co.airFlowVolume = -1;
+			co.airflowVolume = Double.valueOf(bundle.getString(AIR_FLOW_VOLUME)).doubleValue();
+		} catch(MissingResourceException e){
+			co.airflowVolume = -1;
 		}
 		
@@ -427,5 +427,5 @@
 		}
 		
-		ConfigurationOptions.coolingData = new CoolingModelData(co.pressureDrop, co.outletRoomAirTempeature, co.inletRoomAirTempeature, co.ambientAirTempeature, co.airFlowVolume, co.alpha);
+		ConfigurationOptions.coolingData = new CoolingModelData(co.pressureDrop, co.outletRoomAirTempeature, co.inletRoomAirTempeature, co.ambientAirTempeature, co.airflowVolume, co.alpha);
 		return co;
 	}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/tasks/Job.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/tasks/Job.java	(revision 1374)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/tasks/Job.java	(revision 1396)
@@ -1,9 +1,3 @@
 package schedframe.scheduling.tasks;
-
-
-import org.qcg.broker.schemas.resreqs.ParentType;
-import org.qcg.broker.schemas.resreqs.ResourceRequirements;
-import org.qcg.broker.schemas.resreqs.Workflow;
-import org.qcg.broker.schemas.resreqs.types.TaskStatesName;
 
 
@@ -15,7 +9,7 @@
 
 import org.joda.time.DateTime;
+import org.qcg.broker.schemas.resreqs.ResourceRequirements;
 
 import qcg.shared.constants.BrokerConstants;
-
 import schedframe.scheduling.WorkloadUnitHandler;
 import schedframe.scheduling.manager.tasks.JobRegistryImpl;
@@ -210,83 +204,3 @@
 	}
 	
-	private List<Task> getReadyTasks() throws NoSuchFieldException{
-		
-		List<Task> availableTasks = new ArrayList<Task>();
-		int size = tasks.size();
-		
-		for(int i = 0; i < size; i++){
-			int parCnt;
-			int previousTaskSucceedCnt = 0;
-			Task task = tasks.get(i);
-			if(task.getStatus() != (int)BrokerConstants.TASK_STATUS_UNSUBMITTED)
-				continue;
-			//the following procedure supports only one nested structure
-			Workflow w = task.getDescription().getWorkflow();
-			if (w == null){
-				availableTasks.add(task);
-				continue;
-			}
-			if(w.getAnd() != null) {
-				parCnt = w.getAnd().getParentOpTypeItemCount();
-				if(parCnt == 0){
-					availableTasks.add(task);
-				}else
-				{
-					for(int j = 0; j < parCnt; j++){
-						ParentType par = w.getAnd().getParentOpTypeItem(j).getParent();
-						if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){
-							if(!getTask(par.getContent()).isFinished()){
-								break;
-							}
-						}
-						previousTaskSucceedCnt++;
-					}
-
-					if(previousTaskSucceedCnt == parCnt)
-						availableTasks.add(task);
-				}
-			} 
-			else if(w.getOr() != null) {
-				parCnt = w.getOr().getParentOpTypeItemCount();
-				if(parCnt == 0){
-					availableTasks.add(task);
-				}
-				else{
-					for(int j = 0; j < parCnt; j++){
-						ParentType par = w.getOr().getParentOpTypeItem(j).getParent();
-						if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){
-							if(!getTask(par.getContent()).isFinished()){
-								continue;
-							}
-						}
-						previousTaskSucceedCnt++;
-					}
-
-					if(previousTaskSucceedCnt > 0)
-						availableTasks.add(task);
-				}
-			}
-			else {
-				parCnt = w.getParentCount();
-				if(parCnt == 0){
-					availableTasks.add(task);
-				}else{
-					for(int j = 0; j < parCnt; j++){
-						ParentType par = w.getParent(j);
-						if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){
-							if(!getTask(par.getContent()).isFinished()){
-								continue;
-							}
-						}
-						previousTaskSucceedCnt++;
-					}
-
-					if(previousTaskSucceedCnt == parCnt)
-						availableTasks.add(task);
-				}
-			}
-		}		
-		return availableTasks;
-	}
-	
 }
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceItem.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceItem.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceItem.java	(revision 1396)
@@ -0,0 +1,57 @@
+package schedframe.scheduling;
+
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import schedframe.resources.computing.ComputingResource;
+import schedframe.resources.units.ProcessingElements;
+import schedframe.resources.units.ResourceUnit;
+import schedframe.resources.units.ResourceUnitName;
+import schedframe.resources.units.StandardResourceUnitName;
+
+public class ResourceItem {
+
+	protected Map<ResourceUnitName, ResourceUnit> usedResources;
+	protected Set<String> visitedResources;
+
+	public ResourceItem(Map<ResourceUnitName, ResourceUnit> usedResources){
+		this.usedResources = usedResources;
+		this.visitedResources = new HashSet<String>();
+		saveResourceNames();
+	}
+	
+	public Map<ResourceUnitName, ResourceUnit> getResourceUnits(){
+		return usedResources;
+	}
+	
+	public Set<String> getResourceNames(){
+		return visitedResources;
+	}
+	
+	private void saveResourceNames(){
+		ProcessingElements pes = (ProcessingElements) usedResources.get(StandardResourceUnitName.PE);
+		for (ComputingResource resource : pes) {
+
+			LinkedList<ComputingResource> toExamine = new LinkedList<ComputingResource>();
+			toExamine.push(resource);
+
+			while (!toExamine.isEmpty()) {
+				ComputingResource compResource = toExamine.pop();
+				List<ComputingResource> resources = compResource.getChildren();
+				if(resources.isEmpty()){
+					if(!visitedResources.contains(compResource.getFullName())){
+						visitedResources.add(compResource.getFullName());
+					}
+				} else {
+					for (int i = 0; i < resources.size(); i++) {
+						ComputingResource resourceChild = resources.get(i);
+						toExamine.addLast(resourceChild);
+					}
+				}
+			}
+		}
+	}
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleType.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleType.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleType.java	(revision 1396)
@@ -0,0 +1,36 @@
+package schedframe.scheduling.plugin;
+
+
+import schedframe.scheduling.plugin.grid.ResourceDiscovery;
+import test.EventManager;
+
+
+/**
+ * 
+ * @author Marcin Krystek
+ *
+ */
+public enum ModuleType {
+
+	RESOURCE_DISCOVERY("Resource_discovery", ResourceDiscovery.class),
+	EVENT_MANAGER("Event manager", EventManager.class);
+	//DATA_MANAGER("Data Manager", DataManager.class),
+	//AR_EXTENSION("ARExtension", ARExtension.class);
+
+	
+	private String name;
+	private Class<?> _interface;
+	
+	private ModuleType(String name, Class<?> _class){
+		this.name = name;
+		this._interface = _class;
+	}
+	
+	public String toString(){
+		return this.name;
+	}
+	
+	public boolean isValidFor(Module m){
+		return (m == null ? false : _interface.isAssignableFrom(m.getClass()));
+	}
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/local/LocalSchedulingPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/local/LocalSchedulingPlugin.java	(revision 515)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/local/LocalSchedulingPlugin.java	(revision 1396)
@@ -5,6 +5,6 @@
 import schedframe.scheduling.manager.resources.ResourceManager;
 import schedframe.scheduling.manager.tasks.JobRegistry;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.plugin.SchedulingPlugin;
-import schedframe.scheduling.plugin.grid.ModuleList;
 import schedframe.scheduling.queue.TaskQueueList;
 
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleList.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleList.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleList.java	(revision 1396)
@@ -0,0 +1,12 @@
+package schedframe.scheduling.plugin;
+
+import java.util.List;
+
+public interface ModuleList extends List<Module>{
+	
+	public <T extends Module> List<T> get(ModuleType type);
+	
+	public Module getModule(ModuleType type);
+	
+	public boolean isModuleAvailable(ModuleType type);
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleListImpl.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleListImpl.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleListImpl.java	(revision 1396)
@@ -0,0 +1,58 @@
+package schedframe.scheduling.plugin;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 
+ * @author Marcin Krystek
+ *
+ */
+public class ModuleListImpl extends ArrayList<Module> implements ModuleList {
+
+	private static final long serialVersionUID = -3824600938144742457L;
+
+	public ModuleListImpl(){
+		super();
+	}
+	
+	public ModuleListImpl(int initialSize){
+		super(initialSize);
+	}
+	
+	public List<Module> get(ModuleType type){
+		List<Module> list = null;
+		
+		for(int i = 0; i < size(); i++){
+			Module m = get(i);
+			if(m.getType() == type){
+				list = (list == null ? new ArrayList<Module>(1) : list);
+				list.add(m);
+			}
+		}
+		return list;
+	}
+	
+	public Module getModule(ModuleType type){
+		
+		for(int i = 0; i < size(); i++){
+			Module m = get(i);
+			if(m.getType() == type){
+				return m;
+			}
+		}
+		return null;
+	}
+	
+	public boolean isModuleAvailable(ModuleType type){
+		for(int i = 0; i < size(); i++){
+			Module m = get(i);
+			if(m.getType() == type){
+				return true;
+			}
+		}
+		return false;
+	}
+	
+	
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/SchedulingPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/SchedulingPlugin.java	(revision 516)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/SchedulingPlugin.java	(revision 1396)
@@ -7,5 +7,4 @@
 import schedframe.scheduling.manager.tasks.JobRegistry;
 import schedframe.scheduling.plan.SchedulingPlanInterface;
-import schedframe.scheduling.plugin.grid.ModuleList;
 import schedframe.scheduling.queue.TaskQueueList;
 
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/Module.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/Module.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/Module.java	(revision 1396)
@@ -0,0 +1,20 @@
+package schedframe.scheduling.plugin;
+
+import java.util.Properties;
+
+import schedframe.exceptions.ModuleException;
+
+/**
+ * 
+ * @author Marcin Krystek
+ *
+ */
+public interface Module {
+
+	public void init(Properties properties) throws ModuleException;
+	
+	public void dispose() throws ModuleException;
+	
+	public ModuleType getType();
+	
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/ResourceDiscovery.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/ResourceDiscovery.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/ResourceDiscovery.java	(revision 1396)
@@ -6,4 +6,5 @@
 import schedframe.scheduling.SchedulerDescription;
 import schedframe.scheduling.SecurityContext;
+import schedframe.scheduling.plugin.Module;
 import schedframe.scheduling.tasks.requirements.AbstractResourceRequirements;
 
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/ModuleList.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/ModuleList.java	(revision 477)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package schedframe.scheduling.plugin.grid;
-
-import java.util.List;
-
-public interface ModuleList extends List<Module>{
-	
-	public <T extends Module> List<T> get(ModuleType type);
-	
-	public Module getModule(ModuleType type);
-	
-	public boolean isModuleAvailable(ModuleType type);
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/ModuleListImpl.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/ModuleListImpl.java	(revision 477)
+++ 	(revision )
@@ -1,58 +1,0 @@
-package schedframe.scheduling.plugin.grid;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 
- * @author Marcin Krystek
- *
- */
-public class ModuleListImpl extends ArrayList<Module> implements ModuleList {
-
-	private static final long serialVersionUID = -3824600938144742457L;
-
-	public ModuleListImpl(){
-		super();
-	}
-	
-	public ModuleListImpl(int initialSize){
-		super(initialSize);
-	}
-	
-	public List<Module> get(ModuleType type){
-		List<Module> list = null;
-		
-		for(int i = 0; i < size(); i++){
-			Module m = get(i);
-			if(m.getType() == type){
-				list = (list == null ? new ArrayList<Module>(1) : list);
-				list.add(m);
-			}
-		}
-		return list;
-	}
-	
-	public Module getModule(ModuleType type){
-		
-		for(int i = 0; i < size(); i++){
-			Module m = get(i);
-			if(m.getType() == type){
-				return m;
-			}
-		}
-		return null;
-	}
-	
-	public boolean isModuleAvailable(ModuleType type){
-		for(int i = 0; i < size(); i++){
-			Module m = get(i);
-			if(m.getType() == type){
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/Module.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/Module.java	(revision 477)
+++ 	(revision )
@@ -1,22 +1,0 @@
-package schedframe.scheduling.plugin.grid;
-
-import java.util.Properties;
-
-import eduni.simjava.Sim_event;
-
-import schedframe.exceptions.ModuleException;
-
-/**
- * 
- * @author Marcin Krystek
- *
- */
-public interface Module {
-
-	public void init(Properties properties) throws ModuleException;
-	
-	public void dispose() throws ModuleException;
-	
-	public ModuleType getType();
-	
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/ModuleType.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/ModuleType.java	(revision 777)
+++ 	(revision )
@@ -1,36 +1,0 @@
-package schedframe.scheduling.plugin.grid;
-
-import schedframe.StaticResourceLoadCalendar;
-import test.EventManager;
-
-
-/**
- * 
- * @author Marcin Krystek
- *
- */
-public enum ModuleType {
-
-	RESOURCE_DISCOVERY("Resource_discovery", ResourceDiscovery.class),
-	RESOURCE_CALENDAR("Resource calendar", StaticResourceLoadCalendar.class),
-	EVENT_MANAGER("Event manager", EventManager.class);
-	//DATA_MANAGER("Data Manager", DataManager.class),
-	//AR_EXTENSION("ARExtension", ARExtension.class);
-
-	
-	private String name;
-	private Class<?> _interface;
-	
-	private ModuleType(String name, Class<?> _class){
-		this.name = name;
-		this._interface = _class;
-	}
-	
-	public String toString(){
-		return this.name;
-	}
-	
-	public boolean isValidFor(Module m){
-		return (m == null ? false : _interface.isAssignableFrom(m.getClass()));
-	}
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/global/GridBroker.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/global/GridBroker.java	(revision 1385)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/global/GridBroker.java	(revision 1396)
@@ -12,7 +12,7 @@
 import schedframe.scheduling.Scheduler;
 import schedframe.scheduling.manager.resources.ManagedResources;
+import schedframe.scheduling.plugin.ModuleListImpl;
 import schedframe.scheduling.plugin.SchedulingPlugin;
 import schedframe.scheduling.plugin.estimation.ExecutionTimeEstimationPlugin;
-import schedframe.scheduling.plugin.grid.ModuleListImpl;
 import schedframe.scheduling.queue.TaskQueueList;
 
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/AbstractManagementSystem.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/AbstractManagementSystem.java	(revision 1377)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/AbstractManagementSystem.java	(revision 1396)
@@ -23,7 +23,7 @@
 import schedframe.scheduling.plan.AllocationInterface;
 import schedframe.scheduling.plan.SchedulingPlanInterface;
+import schedframe.scheduling.plugin.ModuleList;
 import schedframe.scheduling.plugin.SchedulingPlugin;
 import schedframe.scheduling.plugin.estimation.ExecutionTimeEstimationPlugin;
-import schedframe.scheduling.plugin.grid.ModuleList;
 import schedframe.scheduling.manager.resources.ResourceAllocation;
 import schedframe.scheduling.queue.TaskQueue;
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/local/LocalManagementSystem.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/local/LocalManagementSystem.java	(revision 1392)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/local/LocalManagementSystem.java	(revision 1396)
@@ -4,8 +4,6 @@
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import org.apache.commons.logging.Log;
@@ -33,5 +31,5 @@
 import schedframe.resources.units.StandardResourceUnitName;
 import schedframe.scheduling.ExecutionHistoryItem;
-import schedframe.scheduling.ResourceHistoryItem;
+import schedframe.scheduling.ResourceItem;
 import schedframe.scheduling.Scheduler;
 import schedframe.scheduling.TaskList;
@@ -44,7 +42,7 @@
 import schedframe.scheduling.plan.ScheduledTaskInterface;
 import schedframe.scheduling.plan.SchedulingPlanInterface;
+import schedframe.scheduling.plugin.ModuleListImpl;
 import schedframe.scheduling.plugin.SchedulingPlugin;
 import schedframe.scheduling.plugin.estimation.ExecutionTimeEstimationPlugin;
-import schedframe.scheduling.plugin.grid.ModuleListImpl;
 import schedframe.scheduling.policy.AbstractManagementSystem;
 import schedframe.scheduling.queue.TaskQueueList;
@@ -56,5 +54,5 @@
 import schedframe.scheduling.tasks.WorkloadUnit;
 import simulator.DCWormsConstants;
-import simulator.stats.GSSAccumulator;
+import simulator.stats.DCwormsAccumulator;
 import simulator.utils.DoubleMath;
 import dcworms.schedframe.scheduling.ExecTask;
@@ -382,5 +380,5 @@
 
 		saveExecutionHistory(exec, exec.getCompletionPercentage(), phaseDuration);
-		if(exec.getResourceConsumptionProfile().isLast()){
+		if(exec.getExecutionProfile().isLast()){
 			scheduler.sendInternal(phaseDuration, DCWormsTags.TASK_EXECUTION_FINISHED, execTask);;
 		} else {
@@ -451,5 +449,5 @@
 			ExecTask task = iter.next();
 			Executable exec = (Executable)task;
-			ExecutionHistoryItem execHistItem = exec.getExecHistory().getLast();
+			ExecutionHistoryItem execHistItem = exec.getExecutionHistory().getLast();
 			//System.out.println("--- upadteProgressX: " + Sim_system.sim_clock() );
 			//System.out.println("taskId: " + exec.getId() + "; completion percentage: " + exec.getCompletionPercentage() + "; timespan: " + timeSpan + "; estimatedDuration: " +  execHistItem.getCompletionPercentage());
@@ -496,5 +494,5 @@
 					execTask, choosenResources, exec.getCompletionPercentage())).intValue();
 
-			ExecutionHistoryItem execHistItem = exec.getExecHistory().getLast();
+			ExecutionHistoryItem execHistItem = exec.getExecutionHistory().getLast();
 			double lastTimeStamp = execHistItem.getTimeStamp().getMillis()/1000;
 			if(DoubleMath.subtract((lastTimeStamp + execHistItem.getEstimatedDuration()), (new DateTime().getMillis()/1000 + phaseDuration)) == 0.0){
@@ -508,5 +506,5 @@
 			saveExecutionHistory(exec, exec.getCompletionPercentage(), phaseDuration);
 			
-			if(exec.getResourceConsumptionProfile().isLast()){
+			if(exec.getExecutionProfile().isLast()){
 				ExecTaskFilter filter = new ExecTaskFilter(exec.getUniqueId(), DCWormsTags.TASK_EXECUTION_FINISHED);
 				scheduler.sim_cancel(filter, null);
@@ -542,5 +540,5 @@
 			saveExecutionHistory(exec, exec.getCompletionPercentage(), phaseDuration);
 			
-			if(exec.getResourceConsumptionProfile().isLast()){
+			if(exec.getExecutionProfile().isLast()){
 				scheduler.sendInternal(phaseDuration, DCWormsTags.TASK_EXECUTION_FINISHED, execTask);
 			} else {
@@ -555,5 +553,5 @@
 	public double calculateTotalLoad() {
 
-		GSSAccumulator loadAcc = new GSSAccumulator();
+		DCwormsAccumulator loadAcc = new DCwormsAccumulator();
 		try {
 			for(ComputingResource compRes: getResourceManager().getResourcesOfType(StandardResourceType.Node)){
@@ -718,7 +716,6 @@
 		boolean allocationStatus = getAllocationManager().allocateResources(choosenResources, exclusive);
 		if(allocationStatus){
-			ResourceHistoryItem resourceHistoryItem = new ResourceHistoryItem(choosenResources);
+			ResourceItem resourceHistoryItem = new ResourceItem(choosenResources);
 			exec.addAllocatedResources(resourceHistoryItem);
-			saveResourceHistory(exec);
 			return true;
 		}
@@ -726,28 +723,5 @@
 	}
 	
-	private void saveResourceHistory(Executable exec){
-		ProcessingElements pes = (ProcessingElements) exec.getAllocatedResources().getLast().getResourceUnits().get(StandardResourceUnitName.PE);
-		for (ComputingResource resource : pes) {
-
-			LinkedList<ComputingResource> toExamine = new LinkedList<ComputingResource>();
-			toExamine.push(resource);
-
-			while (!toExamine.isEmpty()) {
-				ComputingResource compResource = toExamine.pop();
-				List<ComputingResource> resources = compResource.getChildren();
-				if(resources.isEmpty()){
-					Set<String> visitedResources = exec.getAllocatedResources().getLast().getVisitedResources();
-					if(!visitedResources.contains(compResource.getFullName())){
-						exec.getAllocatedResources().getLast().trackResource(compResource.getFullName());
-					}
-				} else {
-					for (int i = 0; i < resources.size(); i++) {
-						ComputingResource resourceChild = resources.get(i);
-						toExamine.addLast(resourceChild);
-					}
-				}
-			}
-		}
-	}
+
 	
 }
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/GridResourceDiscovery.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/GridResourceDiscovery.java	(revision 493)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/GridResourceDiscovery.java	(revision 1396)
@@ -20,5 +20,5 @@
 import schedframe.resources.units.ResourceUnitName;
 import schedframe.scheduling.manager.resources.ResourceManager;
-import schedframe.scheduling.plugin.grid.ModuleType;
+import schedframe.scheduling.plugin.ModuleType;
 import schedframe.scheduling.plugin.grid.ResourceDiscovery;
 import schedframe.scheduling.tasks.requirements.AbstractResourceRequirements;
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/resources/LocalResourceManager.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/resources/LocalResourceManager.java	(revision 1392)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/resources/LocalResourceManager.java	(revision 1396)
@@ -306,5 +306,5 @@
 			for(ResourceUnitName resUnitName: resources.keySet()){
 				ResourceUnit resUnit = resources.get(resUnitName);
-				if(resUnit.getName().getName().equals(StandardResourceUnitName.PE.getName())){
+				if(resUnit.getName().getLabel().equals(StandardResourceUnitName.PE.getLabel())){
 					ProcessingElements pe = (ProcessingElements)resUnit;
 					for(ComputingResource cr: pe){
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java	(revision 1362)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java	(revision 1396)
@@ -53,5 +53,5 @@
 			for (ExecTask task: executables) {
 				if (task.getStatus() == status) {
-					Set<String> visitedResource = task.getAllocatedResources().getLast().getVisitedResources();
+					Set<String> visitedResource = task.getAllocatedResources().getLast().getResourceNames();
 					for(String res: visitedResource){
 						if(res.contains(context)){
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceHistoryItem.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceHistoryItem.java	(revision 1362)
+++ 	(revision )
@@ -1,32 +1,0 @@
-package schedframe.scheduling;
-
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import schedframe.resources.units.ResourceUnit;
-import schedframe.resources.units.ResourceUnitName;
-
-public class ResourceHistoryItem {
-
-	protected Map<ResourceUnitName, ResourceUnit> usedResources;
-	protected Set<String> visitedResources;
-
-	public ResourceHistoryItem(Map<ResourceUnitName, ResourceUnit> usedResources){
-		this.usedResources = usedResources;
-		this.visitedResources = new HashSet<String>();
-	}
-	
-	public Map<ResourceUnitName, ResourceUnit> getResourceUnits(){
-		return usedResources;
-	}
-	
-	public void trackResource(String resName){
-		visitedResources.add(resName);
-	}
-	
-	public Set<String> getVisitedResources(){
-		return visitedResources;
-	}
-	
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/ResourceHistoryItem.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/ResourceHistoryItem.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/ResourceHistoryItem.java	(revision 1396)
@@ -0,0 +1,34 @@
+package schedframe.resources;
+
+
+public class ResourceHistoryItem {
+	
+	private long timestamp;	
+	private String resourceName;
+	private String action;
+	private String paramter;
+	
+	public ResourceHistoryItem(long timestamp, String resourceName, String action, String paramter) {
+		super();
+		this.timestamp = timestamp;
+		this.resourceName = resourceName;
+		this.action = action;
+		this.paramter = paramter;
+	}
+	
+	public long getTimestamp() {
+		return timestamp;
+	}
+	
+	public String getResourceName() {
+		return resourceName;
+	}
+	
+	public String getAction() {
+		return action;
+	}
+	
+	public String getParamter() {
+		return paramter;
+	}
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/ResourceTypeFactory.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/ResourceTypeFactory.java	(revision 1207)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/ResourceTypeFactory.java	(revision 1396)
@@ -60,5 +60,5 @@
 			return StandardResourceType.LS;
 		
-		return new UserResourceType(typeName);
+		return new CustomResourceType(typeName);
 	}
 }
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/coolemall/FanAirflowInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/coolemall/FanAirflowInterface.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/devices/coolemall/FanAirflowInterface.java	(revision 1396)
@@ -0,0 +1,22 @@
+package schedframe.resources.devices.coolemall;
+
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowProfile;
+import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
+import schedframe.resources.devices.PhysicalResource;
+import schedframe.resources.devices.DeviceAirflowInterface;
+
+public class FanAirflowInterface extends DeviceAirflowInterface {
+
+	public FanAirflowInterface(PhysicalResource resource, AirflowProfile airflowProfile) {
+		super(resource, airflowProfile);
+		this.currentAirflowState = new CustomAirflowStateName("2");
+	}
+	
+	public boolean turnOn(){
+		return setAirflowState(new CustomAirflowStateName("2"));
+	}
+
+	public boolean turnOff(){
+		return setAirflowState(new CustomAirflowStateName("1"));
+	}
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/coolemall/FanAirThroughputInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/coolemall/FanAirThroughputInterface.java	(revision 1317)
+++ 	(revision )
@@ -1,22 +1,0 @@
-package schedframe.resources.devices.coolemall;
-
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputProfile;
-import schedframe.resources.computing.profiles.energy.airthroughput.UserAirThroughputStateName;
-import schedframe.resources.devices.PhysicalResource;
-import schedframe.resources.devices.DeviceAirThroughputInterface;
-
-public class FanAirThroughputInterface extends DeviceAirThroughputInterface {
-
-	public FanAirThroughputInterface(PhysicalResource resource, AirThroughputProfile airThroughputProfile) {
-		super(resource, airThroughputProfile);
-		this.currentAirThroughputState = new UserAirThroughputStateName("2");
-	}
-	
-	public boolean turnOn(){
-		return setAirThroughputState(new UserAirThroughputStateName("2"));
-	}
-
-	public boolean turnOff(){
-		return setAirThroughputState(new UserAirThroughputStateName("1"));
-	}
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/Device.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/Device.java	(revision 1207)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/devices/Device.java	(revision 1396)
@@ -25,5 +25,5 @@
 		this.extensionList = new ExtensionListImpl(1);
 		initCharacteristics(devDesc);
-		accept(new EnergyExtension.Builder().resource(this).powerProfile(devDesc.getPowerProfile()).airFlowProfile(devDesc.getAirThroughputProfile()).thermalProfile(devDesc.getThermalProfile()).build());	
+		accept(new EnergyExtension.Builder().resource(this).powerProfile(devDesc.getPowerProfile()).airflowProfile(devDesc.getAirflowProfile()).thermalProfile(devDesc.getThermalProfile()).build());	
 	}
 
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/description/PhysicalResourceDescription.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/description/PhysicalResourceDescription.java	(revision 1317)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/devices/description/PhysicalResourceDescription.java	(revision 1396)
@@ -10,8 +10,9 @@
 import schedframe.resources.computing.description.ResourceDescription;
 import schedframe.resources.computing.location.Location;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputProfile;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputState;
-import schedframe.resources.computing.profiles.energy.airthroughput.plugin.AirThroughputEstimationPlugin;
-import schedframe.resources.computing.profiles.energy.airthroughput.plugin.DefaultAirThroughputEstimationPlugin;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowStateNameFactory;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowProfile;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowState;
+import schedframe.resources.computing.profiles.energy.airthroughput.plugin.AirflowEstimationPlugin;
+import schedframe.resources.computing.profiles.energy.airthroughput.plugin.DefaultAirflowEstimationPlugin;
 import schedframe.resources.computing.profiles.energy.power.PState;
 import schedframe.resources.computing.profiles.energy.power.PowerProfile;
@@ -36,5 +37,5 @@
 
 	protected PowerProfile powerProfile;
-	protected AirThroughputProfile airThroughputProfile;
+	protected AirflowProfile airflowProfile;
 	protected ThermalProfile thermalProfile;
 	protected LoadProfile loadProfile;
@@ -58,5 +59,5 @@
 		if (profile != null) {
 			initPowerProfile(profile.getPowerProfile());
-			initAirThroughputProfile(profile.getAirThroughputProfile());
+			initAirflowProfile(profile.getAirThroughputProfile());
 			initThermalProfile(profile.getThermalProfile());
 			initLoadProfile(profile.getLoadProfile());
@@ -151,35 +152,35 @@
 	}
 
-	protected void initAirThroughputProfile(schemas.AirThroughputProfile airThroughputProfile) {
-		if (airThroughputProfile != null) {
-			
-			AirThroughputEstimationPlugin airThroughputEstimationPlugin = null;
-			List<AirThroughputState> airThroughputStates = null;
-			if(airThroughputProfile.getAirThroughputEstimationPlugin() != null){
-				String airThroughputEstimationPluginName = airThroughputProfile.getAirThroughputEstimationPlugin().getName();
-				if(airThroughputEstimationPluginName != null) {
-					airThroughputEstimationPlugin = (AirThroughputEstimationPlugin) InstanceFactory.createInstance(
-							airThroughputEstimationPluginName, AirThroughputEstimationPlugin.class);			
+	protected void initAirflowProfile(schemas.AirThroughputProfile airflowProfile) {
+		if (airflowProfile != null) {
+			
+			AirflowEstimationPlugin airflowEstimationPlugin = null;
+			List<AirflowState> airflowStates = null;
+			if(airflowProfile.getAirThroughputEstimationPlugin() != null){
+				String airflowEstimationPluginName = airflowProfile.getAirThroughputEstimationPlugin().getName();
+				if(airflowEstimationPluginName != null) {
+					airflowEstimationPlugin = (AirflowEstimationPlugin) InstanceFactory.createInstance(
+							airflowEstimationPluginName, AirflowEstimationPlugin.class);			
 				} else {
-					airThroughputEstimationPlugin = new DefaultAirThroughputEstimationPlugin();
-				}
-				Parameters params = extractParameters(airThroughputProfile.getAirThroughputEstimationPlugin().getParameter());
-				airThroughputEstimationPlugin.init(params);
-			}
-			if(airThroughputProfile.getAirThroughputStates() != null){
-				airThroughputStates = new ArrayList<AirThroughputState>();
-				int airThrouhputStateCount = airThroughputProfile.getAirThroughputStates().getAirThroughputStateCount();
-				for (int i = 0; i < airThrouhputStateCount; i++) {
-					schemas.AirThroughputState ats = airThroughputProfile.getAirThroughputStates().getAirThroughputState(i);
-					AirThroughputState airThroughputState = new AirThroughputState(ats.getName(), ats.getValue()
+					airflowEstimationPlugin = new DefaultAirflowEstimationPlugin();
+				}
+				Parameters params = extractParameters(airflowProfile.getAirThroughputEstimationPlugin().getParameter());
+				airflowEstimationPlugin.init(params);
+			}
+			if(airflowProfile.getAirThroughputStates() != null){
+				airflowStates = new ArrayList<AirflowState>();
+				int airflowStateCount = airflowProfile.getAirThroughputStates().getAirThroughputStateCount();
+				for (int i = 0; i < airflowStateCount; i++) {
+					schemas.AirThroughputState ats = airflowProfile.getAirThroughputStates().getAirThroughputState(i);
+					AirflowState airflowState = new AirflowState(AirflowStateNameFactory.createAirflowStateName(ats.getName()), ats.getValue()
 							.getContent(), ats.getPowerUsage().getContent());
 					Parameters params = extractParameters(ats.getParameter());
-					airThroughputState.init(params);
-					airThroughputStates.add(airThroughputState);
-				}
-			}
-			this.airThroughputProfile = new AirThroughputProfile(airThroughputEstimationPlugin, airThroughputStates);
-			Parameters params = extractParameters(airThroughputProfile.getParameter());
-			this.airThroughputProfile.init(params);
+					airflowState.init(params);
+					airflowStates.add(airflowState);
+				}
+			}
+			this.airflowProfile = new AirflowProfile(airflowEstimationPlugin, airflowStates);
+			Parameters params = extractParameters(airflowProfile.getParameter());
+			this.airflowProfile.init(params);
 		}
 	}
@@ -281,6 +282,6 @@
 	}
 
-	public AirThroughputProfile getAirThroughputProfile() {
-		return airThroughputProfile;
+	public AirflowProfile getAirflowProfile() {
+		return airflowProfile;
 	}
 
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceAirflowInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceAirflowInterface.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceAirflowInterface.java	(revision 1396)
@@ -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.AirflowProfile;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowState;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirflowStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirflowInterface;
+
+public class DeviceAirflowInterface implements AirflowInterface{
+
+	protected AirflowStateName currentAirflowState;
+	protected AirflowProfile airflowProfile;
+	protected PhysicalResource resource;
+	
+	public DeviceAirflowInterface(PhysicalResource resource, AirflowProfile airflowProfile){
+		this.resource = resource;
+		this.airflowProfile = airflowProfile;
+		this.currentAirflowState = StandardAirflowStateName.ON;
+	}
+	
+	public AirflowStateName getAirflowState() {
+		return currentAirflowState;
+	}
+
+	public boolean setAirflowState(AirflowStateName state) {
+		if(supportAirflowState(state)){
+			currentAirflowState = 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 supportAirflowState(AirflowStateName state) {
+		for(AirflowState airflowState: airflowProfile.getAirflowStates()){
+			if(airflowState.getName().getLabel().equals(state.getLabel())){
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public List<AirflowState> getSupportedAirflowStates(){
+		List<AirflowState> airflowStates = new ArrayList<AirflowState>();
+		for(AirflowState airFlowState: airflowProfile.getAirflowStates()){
+			airflowStates.add(airFlowState);
+		}
+		return airflowStates;
+	}
+
+	public double getAirflow(AirflowStateName state) throws NoSuchFieldException {
+		double airflow = 0;
+		if(supportAirflowState(state)){
+			for(AirflowState airflowState: airflowProfile.getAirflowStates()){
+				if(airflowState.getName().getLabel().equals(state.getLabel())){
+					airflow = airflowState.getValue();
+					break;
+				}
+			}
+		}
+		return airflow;
+	}
+
+	public double getPowerConsumption(AirflowStateName state) throws NoSuchFieldException {
+		double powerConsumption = 0;
+		if(supportAirflowState(state)){
+			for(AirflowState airflowState: airflowProfile.getAirflowStates()){
+				if(airflowState.getName().getLabel().equals(state.getLabel())){
+					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(currentAirflowState));
+			} catch (NoSuchFieldException e) {
+			}
+		}
+		return airflow;
+	}
+	
+	public List<AirflowValue> getAirflowHistory(){
+		return airflowProfile.getAirflowHistory();
+	}
+	
+	public Parameters getParameters() {
+		return airflowProfile.getParameters();
+	}
+
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResource.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResource.java	(revision 1287)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResource.java	(revision 1396)
@@ -12,5 +12,5 @@
 import schedframe.resources.computing.extensions.ExtensionType;
 import schedframe.resources.computing.profiles.energy.EnergyExtension;
-import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirThroughputInterface;
+import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirflowInterface;
 import schedframe.resources.computing.profiles.energy.power.ui.PowerInterface;
 import schedframe.resources.computing.profiles.energy.thermal.ui.ThermalInterface;
@@ -70,9 +70,9 @@
 	}
 	
-	public AirThroughputInterface getAirThroughputInterface(){
+	public AirflowInterface getAirflowInterface(){
 		Extension extension = getExtension(ExtensionType.ENERGY_EXTENSION);
 		if(extension != null){
 			EnergyExtension ee = (EnergyExtension)extension;
-			return ee.getAirThroughputInterface();
+			return ee.getAirflowInterface();
 		}
 		return null;
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceAirThroughputInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceAirThroughputInterface.java	(revision 1380)
+++ 	(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 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(){
-		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/DeviceEnergyExtension.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceEnergyExtension.java	(revision 1275)
+++ 	(revision )
@@ -1,210 +1,0 @@
-package schedframe.resources.devices;
-
-import java.util.Properties;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import schedframe.events.Event;
-import schedframe.resources.computing.extensions.Extension;
-import schedframe.resources.computing.extensions.ExtensionException;
-import schedframe.resources.computing.extensions.ExtensionType;
-import schedframe.resources.computing.profiles.energy.EnergyEvent;
-import schedframe.resources.computing.profiles.energy.EnergyEventType;
-import schedframe.resources.computing.profiles.energy.EnergyExtension;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputInterfaceFactory;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputProfile;
-import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirThroughputInterface;
-import schedframe.resources.computing.profiles.energy.power.PowerInterfaceFactory;
-import schedframe.resources.computing.profiles.energy.power.PowerProfile;
-import schedframe.resources.computing.profiles.energy.power.ui.PowerInterface;
-import schedframe.resources.computing.profiles.energy.thermal.ThermalInterfaceFactory;
-import schedframe.resources.computing.profiles.energy.thermal.ThermalProfile;
-import schedframe.resources.computing.profiles.energy.thermal.ui.ThermalInterface;
-import schedframe.scheduling.manager.tasks.JobRegistryImpl;
-import simulator.DataCenterWorkloadSimulator;
-
-public class DeviceEnergyExtension implements Extension{
-
-	private Log log = LogFactory.getLog(EnergyExtension.class);
-
-	protected PowerInterface powerInterface;
-	protected PowerProfile powerProfile;
-	
-	protected AirThroughputInterface airFlowInterface;
-	protected AirThroughputProfile airFlowProfile;
-	
-	protected ThermalInterface thermalInterface;
-	protected ThermalProfile thermalProfile;
-	
-  	protected PhysicalResource resource;
-
-
-	public static class Builder {
-		  
-		protected PhysicalResource resource;
-		protected PowerInterface powerInterface;
-		protected PowerProfile powerProfile;
-		
-		protected AirThroughputInterface airFlowInterface;
-		protected AirThroughputProfile airFlowProfile;
-		
-		protected ThermalInterface thermalInterface;
-		protected ThermalProfile thermalProfile;
-		
-		public Builder resource(PhysicalResource res) {this.resource = res; return this;}
-		
-		public Builder powerProfile(PowerProfile pp){this.powerProfile = pp; this.powerInterface = PowerInterfaceFactory.createPowerInterface(resource, powerProfile); return this; }
-
-        public Builder airFlowProfile(AirThroughputProfile atp){this.airFlowProfile = atp; this.airFlowInterface = AirThroughputInterfaceFactory.createAirThroughputInterface(resource, airFlowProfile); return this; }
-
-        public Builder thermalProfile(ThermalProfile tp){this.thermalProfile = tp; this.thermalInterface = ThermalInterfaceFactory.createThermalInterface(resource, thermalProfile); return this; }
-
-        public DeviceEnergyExtension build() {
-            return new DeviceEnergyExtension(this);
-        }
-	}
-	
-	private DeviceEnergyExtension(Builder builder) {
-		this.resource = builder.resource;
-		this.powerInterface = builder.powerInterface;
-		this.powerProfile = builder.powerProfile;
-		
-		this.airFlowInterface = builder.airFlowInterface ;
-		this.airFlowProfile = builder.airFlowProfile;
-		
-		this.thermalInterface = builder.thermalInterface;
-		this.thermalProfile = builder.thermalProfile;
-	}
-
-	
-	public boolean supportsEvent(Event event) {
-
-		if(powerProfile == null || powerProfile.getEnergyEstimationPlugin() == null)
-			return false;
-		if(event.getType().getName().equals(EnergyEventType.POWER_STATE_CHANGED.getName()))
-			return true;
-		else if(event.getType().getName().equals(EnergyEventType.FREQUENCY_CHANGED.getName()))
-			return true;
-		else if(event.getType().getName().equals(EnergyEventType.TASK_STARTED.getName()))
-			return true;
-		else if(event.getType().getName().equals(EnergyEventType.TASK_FINISHED.getName()))
-			return true;
-		else if(event.getType().getName().equals(EnergyEventType.RESOURCE_UTILIZATION_CHANGED.getName()))
-			return true;
-	
-		if(event.getType().getName().equals(EnergyEventType.AIRFLOW_STATE_CHANGED.getName()))
-			return true;
-		if(event.getType().getName().equals(EnergyEventType.TEMPERATURE_CHANGED.getName()))
-			return true;
-		
-		else return false;
-	}
-
-	public void handleEvent(Event event) {
-		
-		EnergyEvent enEvent = (EnergyEvent)event;
-		double power = 0;
-		boolean status = false;
-		try{
-			switch (enEvent.getType()) {
-			
-			case POWER_STATE_CHANGED:
-				power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(resource.getFullName()), resource);
-				
-				status = powerProfile.addToPowerUsageHistory(power);
-				//temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);
-				//thermalProfile.addToTemperatureHistory(temperature);
-				break;
-				
-			case FREQUENCY_CHANGED:
-				power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(resource.getFullName()), resource);
-				status = powerProfile.addToPowerUsageHistory(power);
-				//temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);
-				//thermalProfile.addToTemperatureHistory(temperature);
-				break;
-				
-			case TASK_STARTED:
-				power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(resource.getFullName()), resource);
-				status = powerProfile.addToPowerUsageHistory(power);
-				//temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);
-				//thermalProfile.addToTemperatureHistory(temperature);
-				break;
-	
-			case TASK_FINISHED:
-				power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(resource.getFullName()), resource);
-				status = powerProfile.addToPowerUsageHistory(power);
-				//temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);
-				//thermalProfile.addToTemperatureHistory(temperature);
-				break;
-				
-			case RESOURCE_UTILIZATION_CHANGED:
-				power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(resource.getFullName()), resource);
-				status = powerProfile.addToPowerUsageHistory(power);
-				//temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);
-				//thermalProfile.addToTemperatureHistory(temperature);
-				break;
-				
-			case AIRFLOW_STATE_CHANGED:
-				double airFlow = powerProfile.getEnergyEstimationPlugin().estimateAirThroughput(enEvent, new JobRegistryImpl(resource.getFullName()), resource);
-				airFlowProfile.addToAirFlowHistory(airFlow);
-				power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(resource.getFullName()), resource);
-				powerProfile.addToPowerUsageHistory(power);
-				//temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);
-				//thermalProfile.addToTemperatureHistory(temperature);
-				break;
-				
-			case TEMPERATURE_CHANGED:
-				double temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(resource.getFullName()), resource);
-				thermalProfile.addToTemperatureHistory(temperature);
-				break;
-			}
-		}catch(Exception e){
-			
-		}
-		if(status){
-			DataCenterWorkloadSimulator.getEventManager().sendToResources(resource.getType(), 0, new EnergyEvent(EnergyEventType.TEMPERATURE_CHANGED, resource.getFullName()));
-		}
-	}
-
-	public void init(Properties properties) throws ExtensionException {
-		// TODO Auto-generated method stub
-	}
-
-	public ExtensionType getType() {
-		return ExtensionType.ENERGY_EXTENSION;
-	}
-
-	/*public ComputingResource getResource() {
-		return computingResource;
-	}
-
-	public void setResource(ComputingResource compRes){
-		this.computingResource = compRes;
-	}*/
-
-	public PowerInterface getPowerInterface() {
-		return powerInterface;
-	}
-
-	public PowerProfile getPowerProfile() {
-		return powerProfile;
-	}
-
-	public AirThroughputInterface getAirThroughputInterface() {
-		return airFlowInterface;
-	}
-
-	public AirThroughputProfile getAirFlowProfile() {
-		return airFlowProfile;
-	}
-	
-	public ThermalProfile getThermalProfile() {
-		return thermalProfile;
-	}
-
-	public ThermalInterface getThermalInterface() {
-		return thermalInterface;
-	}
-
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/units/ResourceUnitName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/units/ResourceUnitName.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/units/ResourceUnitName.java	(revision 1396)
@@ -3,5 +3,5 @@
 public interface ResourceUnitName {
 	
-	public String getName();
+	public String getLabel();
 
 }
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/units/StandardResourceUnitName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/units/StandardResourceUnitName.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/units/StandardResourceUnitName.java	(revision 1396)
@@ -46,5 +46,5 @@
     }
 
-    public String getName(){
+    public String getLabel(){
     	return this.name;
     }
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/units/ResourceUnitFactory.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/units/ResourceUnitFactory.java	(revision 1384)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/units/ResourceUnitFactory.java	(revision 1396)
@@ -18,19 +18,19 @@
 	
 	public static ResourceUnit createUnit(String unitName, String resId, int totalAmount, int usedAmount){
-		if(unitName.equalsIgnoreCase(StandardResourceUnitName.CPU.getName()))
+		if(unitName.equalsIgnoreCase(StandardResourceUnitName.CPU.getLabel()))
 			return new PEUnit(resId, totalAmount, usedAmount);
-		if(unitName.equalsIgnoreCase(StandardResourceUnitName.PE.getName()))
+		if(unitName.equalsIgnoreCase(StandardResourceUnitName.PE.getLabel()))
 			return new PEUnit(resId, totalAmount, usedAmount);
-		else if(unitName.equalsIgnoreCase(StandardResourceUnitName.MEMORY.getName()))
+		else if(unitName.equalsIgnoreCase(StandardResourceUnitName.MEMORY.getLabel()))
 			 return new Memory(resId, totalAmount, usedAmount);
-		else if(unitName.equalsIgnoreCase(StandardResourceUnitName.STORAGE.getName()))
+		else if(unitName.equalsIgnoreCase(StandardResourceUnitName.STORAGE.getLabel()))
 			 return new Storage(resId, totalAmount, usedAmount);
-		else if(unitName.equalsIgnoreCase(StandardResourceUnitName.GPU.getName()))
+		else if(unitName.equalsIgnoreCase(StandardResourceUnitName.GPU.getLabel()))
 			 return new GPU(resId, totalAmount, usedAmount);
-		else if (unitName.equalsIgnoreCase(StandardResourceUnitName.CPUSPEED.getName()))
+		else if (unitName.equalsIgnoreCase(StandardResourceUnitName.CPUSPEED.getLabel()))
 			return new CpuSpeed(resId, totalAmount, usedAmount); 
-		else if (unitName.equalsIgnoreCase(StandardResourceUnitName.COST.getName()))
+		else if (unitName.equalsIgnoreCase(StandardResourceUnitName.COST.getLabel()))
 			return new Cost(resId, totalAmount);
-		else if (unitName.equalsIgnoreCase(StandardResourceUnitName.APPLICATION.getName()))
+		else if (unitName.equalsIgnoreCase(StandardResourceUnitName.APPLICATION.getLabel()))
 			return new Applications(resId); 
 		else
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/units/ResourceUnitNameFactory.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/units/ResourceUnitNameFactory.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/units/ResourceUnitNameFactory.java	(revision 1396)
@@ -6,26 +6,26 @@
 	public static ResourceUnitName createResourceUnitName(String unitName){
 
-		if(unitName.equals(StandardResourceUnitName.MEMORY.getName()))
+		if(unitName.equals(StandardResourceUnitName.MEMORY.getLabel()))
 			return StandardResourceUnitName.MEMORY;
 		
-		else if (unitName.equals(StandardResourceUnitName.STORAGE.getName()))
+		else if (unitName.equals(StandardResourceUnitName.STORAGE.getLabel()))
 			return StandardResourceUnitName.STORAGE;
 		
-		else if (unitName.equals(StandardResourceUnitName.PE.getName()))
+		else if (unitName.equals(StandardResourceUnitName.PE.getLabel()))
 			return StandardResourceUnitName.PE;
 		
-		else if (unitName.equals(StandardResourceUnitName.CPUSPEED.getName()))
+		else if (unitName.equals(StandardResourceUnitName.CPUSPEED.getLabel()))
 			return StandardResourceUnitName.CPUSPEED;
 		
-		else if (unitName.equals(StandardResourceUnitName.GPU.getName()))
+		else if (unitName.equals(StandardResourceUnitName.GPU.getLabel()))
 			return StandardResourceUnitName.GPU;
 		
-		else if (unitName.equals(StandardResourceUnitName.APPLICATION.getName()))
+		else if (unitName.equals(StandardResourceUnitName.APPLICATION.getLabel()))
 			return StandardResourceUnitName.APPLICATION;
 		
-		else if (unitName.equals(StandardResourceUnitName.COST.getName()))
+		else if (unitName.equals(StandardResourceUnitName.COST.getLabel()))
 			return StandardResourceUnitName.COST;
 
-		else return new UserResourceUnitName(unitName);
+		else return new CustomResourceUnitName(unitName);
 	}
 }
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/units/CustomResourceUnitName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/units/CustomResourceUnitName.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/units/CustomResourceUnitName.java	(revision 1396)
@@ -0,0 +1,15 @@
+package schedframe.resources.units;
+
+public class CustomResourceUnitName implements ResourceUnitName {
+
+	protected String name;
+
+	public CustomResourceUnitName(String name) {
+		this.name = name;
+	}
+
+	public String getLabel() {
+		return name;
+	}
+
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/units/UserResourceUnitName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/units/UserResourceUnitName.java	(revision 477)
+++ 	(revision )
@@ -1,15 +1,0 @@
-package schedframe.resources.units;
-
-public class UserResourceUnitName implements ResourceUnitName {
-
-	protected String name;
-
-	public UserResourceUnitName(String name) {
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/CustomResourceType.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/CustomResourceType.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/CustomResourceType.java	(revision 1396)
@@ -0,0 +1,16 @@
+package schedframe.resources;
+
+
+public class CustomResourceType implements ResourceType {
+
+	protected String name;
+
+	public CustomResourceType(String name) {
+		this.name = name;
+	}
+
+	public String getName() {
+		return name;
+	}
+	
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/StandardAirflowStateName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/StandardAirflowStateName.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/StandardAirflowStateName.java	(revision 1396)
@@ -0,0 +1,12 @@
+package schedframe.resources.computing.profiles.energy.airthroughput;
+
+public enum  StandardAirflowStateName implements AirflowStateName{
+
+	ON,
+	OFF;
+
+	public String getLabel() {
+		return toString();
+	}
+	
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowInterfaceFactory.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowInterfaceFactory.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowInterfaceFactory.java	(revision 1396)
@@ -0,0 +1,31 @@
+package schedframe.resources.computing.profiles.energy.airthroughput;
+
+import schedframe.resources.StandardResourceType;
+import schedframe.resources.computing.ComputingResource;
+import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirflowInterface;
+import schedframe.resources.computing.profiles.energy.airthroughput.ui.ComputingResourceAirflowInterface;
+import schedframe.resources.devices.PhysicalResource;
+import schedframe.resources.devices.DeviceAirflowInterface;
+import schedframe.resources.devices.coolemall.FanAirflowInterface;
+
+public class AirflowInterfaceFactory {
+	
+	public static AirflowInterface createAirflowInterface(PhysicalResource resource, AirflowProfile atp){
+		if(atp == null)
+			return null;
+		AirflowInterface airflowInterface = null;
+		if(resource.getType().getName().equals(StandardResourceType.CRAH.getName()))
+			airflowInterface = new DeviceAirflowInterface(resource, atp);
+		else if(resource.getType().getName().equals(StandardResourceType.Fan.getName()))
+			airflowInterface = new FanAirflowInterface(resource, atp);
+		else if(resource.getType().getName().equals(StandardResourceType.Inlet.getName()))
+			airflowInterface = new FanAirflowInterface(resource, atp);
+		else if(resource.getType().getName().equals(StandardResourceType.Outlet.getName()))
+			airflowInterface = new FanAirflowInterface(resource, atp);
+		else if(resource.getType().getName().equals(StandardResourceType.CoolingDevice.getName()))
+			airflowInterface = new DeviceAirflowInterface(resource, atp);
+		else
+			airflowInterface = new ComputingResourceAirflowInterface((ComputingResource)resource, atp);
+		return airflowInterface;
+	}
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowStateNameFactory.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowStateNameFactory.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowStateNameFactory.java	(revision 1396)
@@ -0,0 +1,16 @@
+package schedframe.resources.computing.profiles.energy.airthroughput;
+
+
+public class AirflowStateNameFactory {
+
+	public static AirflowStateName createAirflowStateName (String airflowStateName){
+		
+		if(airflowStateName.equals(StandardAirflowStateName.ON.getLabel()))
+			return StandardAirflowStateName.ON;
+		
+		else if(airflowStateName.equals(StandardAirflowStateName.OFF.getLabel()))
+			return StandardAirflowStateName.OFF;
+
+		else return new CustomAirflowStateName(airflowStateName);
+	}
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/ui/ComputingResourceAirflowInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/ui/ComputingResourceAirflowInterface.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/ui/ComputingResourceAirflowInterface.java	(revision 1396)
@@ -0,0 +1,112 @@
+package schedframe.resources.computing.profiles.energy.airthroughput.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.joda.time.DateTimeUtils;
+
+import schedframe.Parameters;
+import schedframe.resources.computing.ComputingResource;
+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.AirflowProfile;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowState;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowStateName;
+import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirflowStateName;
+
+public class ComputingResourceAirflowInterface implements AirflowInterface{
+
+	protected AirflowStateName currentAirflowState;
+	protected AirflowProfile airflowProfile;
+	protected ComputingResource resource;
+	
+	public ComputingResourceAirflowInterface(ComputingResource resource, AirflowProfile airflowProfile){
+		this.resource = resource;
+		this.airflowProfile = airflowProfile;
+		this.currentAirflowState = StandardAirflowStateName.ON;
+	}
+	
+	public AirflowStateName getAirflowState() {
+		return currentAirflowState;
+	}
+
+	public boolean setAirflowState(AirflowStateName state) {
+		if(supportAirflowState(state)){
+			currentAirflowState = 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 supportAirflowState(AirflowStateName state) {
+		for(AirflowState airflowState: airflowProfile.getAirflowStates()){
+			if(airflowState.getName().equals(state.getLabel())){
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public List<AirflowState> getSupportedAirflowStates() {
+		List<AirflowState> airflowStates = new ArrayList<AirflowState>();
+		for(AirflowState airflowState: airflowProfile.getAirflowStates()){
+			airflowStates.add(airflowState);
+		}
+		return airflowStates;
+	}
+
+	public double getAirflow(AirflowStateName state) throws NoSuchFieldException {
+		double airflow = 0;
+		if(supportAirflowState(state)){
+			for(AirflowState airflowState: airflowProfile.getAirflowStates()){
+				if(airflowState.getName().equals(state.getLabel())){
+					airflow = airflowState.getValue();
+					break;
+				}
+			}
+		}
+		return airflow;
+	}
+
+	public double getPowerConsumption(AirflowStateName state) throws NoSuchFieldException {
+		double powerConsumption = 0;
+		if(supportAirflowState(state)){
+			for(AirflowState airflowState: airflowProfile.getAirflowStates()){
+				if(airflowState.getName().equals(state.getLabel())){
+					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(currentAirflowState));
+			} catch (NoSuchFieldException e) {
+			}
+		}
+		return airflow;
+	}
+	
+	public List<AirflowValue> getAirflowHistory(){
+		return airflowProfile.getAirflowHistory();
+	}
+	
+	
+	public Parameters getParameters() {
+		return airflowProfile.getParameters();
+	}
+
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/ui/AirflowInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/ui/AirflowInterface.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/ui/AirflowInterface.java	(revision 1396)
@@ -0,0 +1,31 @@
+package schedframe.resources.computing.profiles.energy.airthroughput.ui;
+
+import java.util.List;
+
+import schedframe.Parameters;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowValue;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowState;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowStateName;
+
+public interface AirflowInterface {
+	
+	public AirflowStateName getAirflowState();
+	
+	public boolean setAirflowState(AirflowStateName airflowState);
+	
+	public boolean supportAirflowState(AirflowStateName powerState);
+	
+	public List<AirflowState> getSupportedAirflowStates();
+	
+	public double getAirflow(AirflowStateName state) throws NoSuchFieldException;
+	
+	public double getPowerConsumption(AirflowStateName state) throws NoSuchFieldException;
+	
+	public AirflowValue getRecentAirflow();
+	
+	List<AirflowValue> getAirflowHistory();
+	
+	public Parameters getParameters();
+	
+	
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/ui/ComputingResourceAirThroughputInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/ui/ComputingResourceAirThroughputInterface.java	(revision 1380)
+++ 	(revision )
@@ -1,112 +1,0 @@
-package schedframe.resources.computing.profiles.energy.airthroughput.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.joda.time.DateTimeUtils;
-
-import schedframe.Parameters;
-import schedframe.resources.computing.ComputingResource;
-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;
-
-public class ComputingResourceAirThroughputInterface implements AirThroughputInterface{
-
-	protected AirThroughputStateName currentAirThroughputState;
-	protected AirThroughputProfile airThroughputProfile;
-	protected ComputingResource resource;
-	
-	public ComputingResourceAirThroughputInterface(ComputingResource 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() {
-		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/computing/profiles/energy/airthroughput/ui/AirThroughputInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/ui/AirThroughputInterface.java	(revision 1380)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package schedframe.resources.computing.profiles.energy.airthroughput.ui;
-
-import java.util.List;
-
-import schedframe.Parameters;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirFlowValue;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputState;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputStateName;
-
-public interface AirThroughputInterface {
-	
-	public AirThroughputStateName getAirThroughputState();
-	
-	public boolean setAirThroughputState(AirThroughputStateName airThroughputState);
-	
-	public boolean supportAirThroughputState(AirThroughputStateName powerState);
-	
-	public List<AirThroughputState> getSupportedAirThroughputStates();
-	
-	public double getAirFlow(AirThroughputStateName state) throws NoSuchFieldException;
-	
-	public double getPowerConsumption(AirThroughputStateName state) throws NoSuchFieldException;
-	
-	public AirFlowValue getRecentAirFlow();
-	
-	List<AirFlowValue> getAirFlowHistory();
-	
-	public Parameters getParameters();
-	
-	
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/plugin/AirflowEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/plugin/AirflowEstimationPlugin.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/plugin/AirflowEstimationPlugin.java	(revision 1396)
@@ -0,0 +1,11 @@
+package schedframe.resources.computing.profiles.energy.airthroughput.plugin;
+
+import schedframe.Plugin;
+import schedframe.events.Event;
+import schedframe.resources.computing.ComputingResource;
+import schedframe.scheduling.manager.tasks.JobRegistry;
+
+public interface AirflowEstimationPlugin extends Plugin {
+	
+	public double estimateAirflow(Event event, JobRegistry jobRegistry, ComputingResource resource);
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/plugin/DefaultAirflowEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/plugin/DefaultAirflowEstimationPlugin.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/plugin/DefaultAirflowEstimationPlugin.java	(revision 1396)
@@ -0,0 +1,34 @@
+package schedframe.resources.computing.profiles.energy.airthroughput.plugin;
+
+import schedframe.Parameters;
+import schedframe.PluginConfiguration;
+import schedframe.events.Event;
+import schedframe.resources.computing.ComputingResource;
+import schedframe.scheduling.manager.tasks.JobRegistry;
+
+public class DefaultAirflowEstimationPlugin implements AirflowEstimationPlugin {
+
+	@Override
+	public String getName() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public void init(Parameters properties) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public PluginConfiguration getConfiguration() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public double estimateAirflow(Event event, JobRegistry jobRegistry, ComputingResource resource) {
+		throw new RuntimeException("This interface is depracated. For air throughput estimation please use the estimateAirThroughput method form EnergyEstimationPlugin interface.");
+	}
+
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/plugin/AirThroughputEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/plugin/AirThroughputEstimationPlugin.java	(revision 748)
+++ 	(revision )
@@ -1,11 +1,0 @@
-package schedframe.resources.computing.profiles.energy.airthroughput.plugin;
-
-import schedframe.Plugin;
-import schedframe.events.Event;
-import schedframe.resources.computing.ComputingResource;
-import schedframe.scheduling.manager.tasks.JobRegistry;
-
-public interface AirThroughputEstimationPlugin extends Plugin {
-	
-	public double estimateAirThroughput(Event event, JobRegistry jobRegistry, ComputingResource resource);
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/plugin/DefaultAirThroughputEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/plugin/DefaultAirThroughputEstimationPlugin.java	(revision 770)
+++ 	(revision )
@@ -1,34 +1,0 @@
-package schedframe.resources.computing.profiles.energy.airthroughput.plugin;
-
-import schedframe.Parameters;
-import schedframe.PluginConfiguration;
-import schedframe.events.Event;
-import schedframe.resources.computing.ComputingResource;
-import schedframe.scheduling.manager.tasks.JobRegistry;
-
-public class DefaultAirThroughputEstimationPlugin implements AirThroughputEstimationPlugin {
-
-	@Override
-	public String getName() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void init(Parameters properties) {
-		// TODO Auto-generated method stub
-
-	}
-
-	@Override
-	public PluginConfiguration getConfiguration() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public double estimateAirThroughput(Event event, JobRegistry jobRegistry, ComputingResource resource) {
-		throw new RuntimeException("This interface is depracated. For air throughput estimation please use the estimateAirThroughput method form EnergyEstimationPlugin interface.");
-	}
-
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirFlowValue.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirFlowValue.java	(revision 495)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirFlowValue.java	(revision 1396)
@@ -3,7 +3,7 @@
 import schedframe.resources.computing.profiles.energy.MeasurementHistory;
 
-public class AirFlowValue extends MeasurementHistory{
+public class AirflowValue extends MeasurementHistory{
 
-	public AirFlowValue(long timestamp, double value){
+	public AirflowValue(long timestamp, double value){
 		super(timestamp, value);
 	}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowValue.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowValue.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowValue.java	(revision 1396)
@@ -0,0 +1,11 @@
+package schedframe.resources.computing.profiles.energy.airthroughput;
+
+import schedframe.resources.computing.profiles.energy.MeasurementHistory;
+
+public class AirflowValue extends MeasurementHistory{
+
+	public AirflowValue(long timestamp, double value){
+		super(timestamp, value);
+	}
+	
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/CustomAirflowStateName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/CustomAirflowStateName.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/CustomAirflowStateName.java	(revision 1396)
@@ -0,0 +1,17 @@
+package schedframe.resources.computing.profiles.energy.airthroughput;
+
+
+public class CustomAirflowStateName implements AirflowStateName{
+
+	protected String name;
+
+	public CustomAirflowStateName(String name) {
+		this.name = name;
+	}
+
+	public String getLabel() {
+		return name;
+	}
+
+
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowProfile.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowProfile.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowProfile.java	(revision 1396)
@@ -0,0 +1,65 @@
+package schedframe.resources.computing.profiles.energy.airthroughput;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.joda.time.DateTimeUtils;
+
+import schedframe.Parameters;
+import schedframe.resources.computing.profiles.energy.airthroughput.plugin.AirflowEstimationPlugin;
+
+public class AirflowProfile {
+	
+	protected List<AirflowValue> airflowHistory;
+	
+	protected AirflowEstimationPlugin airflowEstimationPlugin;
+	protected List <AirflowState> airflowStates;
+	protected Parameters parameters;
+
+	public AirflowProfile(AirflowEstimationPlugin airflowEstimationPlugin, List<AirflowState> airflowStates) {
+		super();
+		this.airflowEstimationPlugin = airflowEstimationPlugin;
+		this.airflowStates = airflowStates;
+		this.airflowHistory = new ArrayList<AirflowValue>();
+	}
+
+	public List<AirflowState> getAirflowStates() {
+		return airflowStates;
+	}
+	
+	public void addToAirFlowHistory(double airflow) {
+
+		if (airflowHistory.size() == 0) {
+			AirflowValue usage = new AirflowValue(DateTimeUtils.currentTimeMillis(), airflow);
+			airflowHistory.add(usage);
+			return;
+		}
+
+		int lastIdx = airflowHistory.size() - 1;
+		double lastAirflow = airflowHistory.get(lastIdx).getValue();
+		if (lastAirflow != airflow) {
+			AirflowValue usage = airflowHistory.get(lastIdx);
+			long currentTime = DateTimeUtils.currentTimeMillis();
+			if (usage.getTimestamp() == currentTime) {
+				usage.setValue(airflow);
+				if(lastIdx > 0 && airflowHistory.get(lastIdx - 1).getValue() == airflow)
+					airflowHistory.remove(usage);
+			} else {
+				usage = new AirflowValue(DateTimeUtils.currentTimeMillis(), airflow);
+				airflowHistory.add(usage);
+			}
+		}
+	}
+
+	public List<AirflowValue> getAirflowHistory() {
+		return airflowHistory;
+	}
+	
+	public void init(Parameters params){
+		this.parameters = params;
+	}
+
+	public Parameters getParameters() {
+		return parameters;
+	}
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowState.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowState.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowState.java	(revision 1396)
@@ -0,0 +1,31 @@
+package schedframe.resources.computing.profiles.energy.airthroughput;
+
+import schedframe.Parameters;
+
+public class AirflowState {
+
+	protected AirflowStateName name;
+	protected double value;
+	protected double powerUsage;
+	
+	public AirflowState(AirflowStateName name, double value, double powerUsage) {
+		super();
+		this.name = name;
+		this.value = value;
+		this.powerUsage = powerUsage;
+	}
+	
+	public AirflowStateName getName() {
+		return name;
+	}
+	public double getValue() {
+		return value;
+	}
+	public double getPowerUsage() {
+		return powerUsage;
+	}
+	
+	public void init(Parameters parameters){
+		
+	}
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowStateName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowStateName.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirflowStateName.java	(revision 1396)
@@ -0,0 +1,7 @@
+package schedframe.resources.computing.profiles.energy.airthroughput;
+
+public interface AirflowStateName {
+
+	public String getLabel();
+
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirThroughputProfile.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirThroughputProfile.java	(revision 1207)
+++ 	(revision )
@@ -1,65 +1,0 @@
-package schedframe.resources.computing.profiles.energy.airthroughput;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.joda.time.DateTimeUtils;
-
-import schedframe.Parameters;
-import schedframe.resources.computing.profiles.energy.airthroughput.plugin.AirThroughputEstimationPlugin;
-
-public class AirThroughputProfile {
-	
-	protected List<AirFlowValue> airFlowHistory;
-	
-	protected AirThroughputEstimationPlugin airThroughputEstimationPlugin;
-	protected List <AirThroughputState> airThroughputStates;
-	protected Parameters parameters;
-
-	public AirThroughputProfile(AirThroughputEstimationPlugin airThroughputEstimationPlugin, List<AirThroughputState> airThroughputStates) {
-		super();
-		this.airThroughputEstimationPlugin = airThroughputEstimationPlugin;
-		this.airThroughputStates = airThroughputStates;
-		this.airFlowHistory = new ArrayList<AirFlowValue>();
-	}
-
-	public List<AirThroughputState> getAirThroughputStates() {
-		return airThroughputStates;
-	}
-	
-	public void addToAirFlowHistory(double airFlow) {
-
-		if (airFlowHistory.size() == 0) {
-			AirFlowValue usage = new AirFlowValue(DateTimeUtils.currentTimeMillis(), airFlow);
-			airFlowHistory.add(usage);
-			return;
-		}
-
-		int lastIdx = airFlowHistory.size() - 1;
-		double lastAirFlow = airFlowHistory.get(lastIdx).getValue();
-		if (lastAirFlow != airFlow) {
-			AirFlowValue usage = airFlowHistory.get(lastIdx);
-			long currentTime = DateTimeUtils.currentTimeMillis();
-			if (usage.getTimestamp() == currentTime) {
-				usage.setValue(airFlow);
-				if(lastIdx > 0 && airFlowHistory.get(lastIdx - 1).getValue() == airFlow)
-					airFlowHistory.remove(usage);
-			} else {
-				usage = new AirFlowValue(DateTimeUtils.currentTimeMillis(), airFlow);
-				airFlowHistory.add(usage);
-			}
-		}
-	}
-
-	public List<AirFlowValue> getAirThroughputHistory() {
-		return airFlowHistory;
-	}
-	
-	public void init(Parameters params){
-		this.parameters = params;
-	}
-
-	public Parameters getParameters() {
-		return parameters;
-	}
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirThroughputState.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirThroughputState.java	(revision 477)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package schedframe.resources.computing.profiles.energy.airthroughput;
-
-import schedframe.Parameters;
-
-public class AirThroughputState {
-
-	protected String name;
-	protected double value;
-	protected double powerUsage;
-	
-	public AirThroughputState(String name, double value, double powerUsage) {
-		super();
-		this.name = name;
-		this.value = value;
-		this.powerUsage = powerUsage;
-	}
-	
-	public String getName() {
-		return name;
-	}
-	public double getValue() {
-		return value;
-	}
-	public double getPowerUsage() {
-		return powerUsage;
-	}
-	
-	public void init(Parameters parameters){
-		
-	}
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/UserAirThroughputStateName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/UserAirThroughputStateName.java	(revision 753)
+++ 	(revision )
@@ -1,17 +1,0 @@
-package schedframe.resources.computing.profiles.energy.airthroughput;
-
-
-public class UserAirThroughputStateName implements AirThroughputStateName{
-
-	protected String name;
-
-	public UserAirThroughputStateName(String name) {
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirThroughputStateName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirThroughputStateName.java	(revision 753)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package schedframe.resources.computing.profiles.energy.airthroughput;
-
-public interface AirThroughputStateName {
-
-	public String getName();
-
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/StandardAirThroughputStateName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/StandardAirThroughputStateName.java	(revision 1207)
+++ 	(revision )
@@ -1,12 +1,0 @@
-package schedframe.resources.computing.profiles.energy.airthroughput;
-
-public enum  StandardAirThroughputStateName implements AirThroughputStateName{
-
-	ON,
-	OFF;
-
-	public String getName() {
-		return toString();
-	}
-	
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirThroughputInterfaceFactory.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/AirThroughputInterfaceFactory.java	(revision 1318)
+++ 	(revision )
@@ -1,31 +1,0 @@
-package schedframe.resources.computing.profiles.energy.airthroughput;
-
-import schedframe.resources.StandardResourceType;
-import schedframe.resources.computing.ComputingResource;
-import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirThroughputInterface;
-import schedframe.resources.computing.profiles.energy.airthroughput.ui.ComputingResourceAirThroughputInterface;
-import schedframe.resources.devices.PhysicalResource;
-import schedframe.resources.devices.DeviceAirThroughputInterface;
-import schedframe.resources.devices.coolemall.FanAirThroughputInterface;
-
-public class AirThroughputInterfaceFactory {
-	
-	public static AirThroughputInterface createAirThroughputInterface(PhysicalResource resource, AirThroughputProfile atp){
-		if(atp == null)
-			return null;
-		AirThroughputInterface airThroughputInterface = null;
-		if(resource.getType().getName().equals(StandardResourceType.CRAH.getName()))
-			airThroughputInterface = new DeviceAirThroughputInterface(resource, atp);
-		else if(resource.getType().getName().equals(StandardResourceType.Fan.getName()))
-			airThroughputInterface = new FanAirThroughputInterface(resource, atp);
-		else if(resource.getType().getName().equals(StandardResourceType.Inlet.getName()))
-			airThroughputInterface = new FanAirThroughputInterface(resource, atp);
-		else if(resource.getType().getName().equals(StandardResourceType.Outlet.getName()))
-			airThroughputInterface = new FanAirThroughputInterface(resource, atp);
-		else if(resource.getType().getName().equals(StandardResourceType.CoolingDevice.getName()))
-			airThroughputInterface = new DeviceAirThroughputInterface(resource, atp);
-		else
-			airThroughputInterface = new ComputingResourceAirThroughputInterface((ComputingResource)resource, atp);
-		return airThroughputInterface;
-	}
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/EnergyExtension.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/EnergyExtension.java	(revision 1389)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/EnergyExtension.java	(revision 1396)
@@ -10,7 +10,7 @@
 import schedframe.resources.computing.extensions.ExtensionException;
 import schedframe.resources.computing.extensions.ExtensionType;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputInterfaceFactory;
-import schedframe.resources.computing.profiles.energy.airthroughput.AirThroughputProfile;
-import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirThroughputInterface;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowInterfaceFactory;
+import schedframe.resources.computing.profiles.energy.airthroughput.AirflowProfile;
+import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirflowInterface;
 import schedframe.resources.computing.profiles.energy.power.PowerInterfaceFactory;
 import schedframe.resources.computing.profiles.energy.power.PowerProfile;
@@ -30,6 +30,6 @@
 	protected PowerProfile powerProfile;
 	
-	protected AirThroughputInterface airFlowInterface;
-	protected AirThroughputProfile airFlowProfile;
+	protected AirflowInterface airflowInterface;
+	protected AirflowProfile airflowProfile;
 	
 	protected ThermalInterface thermalInterface;
@@ -74,6 +74,6 @@
 		protected PowerProfile powerProfile;
 		
-		protected AirThroughputInterface airFlowInterface;
-		protected AirThroughputProfile airFlowProfile;
+		protected AirflowInterface airflowInterface;
+		protected AirflowProfile airflowProfile;
 		
 		protected ThermalInterface thermalInterface;
@@ -84,5 +84,5 @@
 		public Builder powerProfile(PowerProfile pp){this.powerProfile = pp; this.powerInterface = PowerInterfaceFactory.createPowerInterface(resource, powerProfile); return this; }
 
-        public Builder airFlowProfile(AirThroughputProfile atp){this.airFlowProfile = atp; this.airFlowInterface = AirThroughputInterfaceFactory.createAirThroughputInterface(resource, airFlowProfile); return this; }
+        public Builder airflowProfile(AirflowProfile atp){this.airflowProfile = atp; this.airflowInterface = AirflowInterfaceFactory.createAirflowInterface(resource, airflowProfile); return this; }
 
         public Builder thermalProfile(ThermalProfile tp){this.thermalProfile = tp; this.thermalInterface = ThermalInterfaceFactory.createThermalInterface(resource, thermalProfile); return this; }
@@ -98,6 +98,6 @@
 		this.powerProfile = builder.powerProfile;
 		
-		this.airFlowInterface = builder.airFlowInterface ;
-		this.airFlowProfile = builder.airFlowProfile;
+		this.airflowInterface = builder.airflowInterface ;
+		this.airflowProfile = builder.airflowProfile;
 		
 		this.thermalInterface = builder.thermalInterface;
@@ -163,6 +163,6 @@
 				
 			case AIRFLOW_STATE_CHANGED:
-				double airFlow = powerProfile.getEnergyEstimationPlugin().estimateAirThroughput(enEvent, new JobRegistryImpl(resource.getFullName()), resource);
-				airFlowProfile.addToAirFlowHistory(airFlow);
+				double airflow = powerProfile.getEnergyEstimationPlugin().estimateAirflow(enEvent, new JobRegistryImpl(resource.getFullName()), resource);
+				airflowProfile.addToAirFlowHistory(airflow);
 				break;
 				
@@ -204,10 +204,10 @@
 	}
 
-	public AirThroughputInterface getAirThroughputInterface() {
-		return airFlowInterface;
-	}
-
-	public AirThroughputProfile getAirFlowProfile() {
-		return airFlowProfile;
+	public AirflowInterface getAirflowInterface() {
+		return airflowInterface;
+	}
+
+	public AirflowProfile getAirFlowProfile() {
+		return airflowProfile;
 	}
 	
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/CustomPowerStateName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/CustomPowerStateName.java	(revision 1396)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/CustomPowerStateName.java	(revision 1396)
@@ -0,0 +1,16 @@
+package schedframe.resources.computing.profiles.energy.power;
+
+public class CustomPowerStateName implements PowerStateName {
+
+	protected String name;
+
+	public CustomPowerStateName(String name) {
+		this.name = name;
+	}
+
+	public String getLabel() {
+		return name;
+	}
+
+
+}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/ComputingResourcePowerInterface.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/ComputingResourcePowerInterface.java	(revision 1374)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/ComputingResourcePowerInterface.java	(revision 1396)
@@ -74,5 +74,5 @@
 	public boolean supportPowerState(PowerStateName state) {
 		for(PowerState powerState: powerProfile.getSupportedPowerStates()){
-			if(powerState.getName().getName().equals(state.getName())){
+			if(powerState.getName().getLabel().equals(state.getLabel())){
 				return true;
 			}
@@ -86,5 +86,5 @@
 		if(supportPowerState(state)){
 			for(PowerState powerState: powerProfile.getSupportedPowerStates()){
-				if(powerState.getName().getName().equals(state.getName())){
+				if(powerState.getName().getLabel().equals(state.getLabel())){
 					powerConsumption = powerState.getPowerUsage();
 					break;
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/PowerStateName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/PowerStateName.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/PowerStateName.java	(revision 1396)
@@ -3,5 +3,5 @@
 public interface PowerStateName {
 	
-	public String getName();
+	public String getLabel();
 
 }
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/plugin/EnergyEstimationPlugin.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/plugin/EnergyEstimationPlugin.java	(revision 1207)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/plugin/EnergyEstimationPlugin.java	(revision 1396)
@@ -10,5 +10,5 @@
 	public double estimatePowerConsumption(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource);
 
-	public double estimateAirThroughput(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource);
+	public double estimateAirflow(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource);
 
 	public double estimateTemperature(EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource);
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/StandardPowerStateName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/StandardPowerStateName.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/StandardPowerStateName.java	(revision 1396)
@@ -10,5 +10,5 @@
 	HIBERNATE;
 
-	public String getName() {
+	public String getLabel() {
 		return toString();
 	}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/PowerStateNameFactory.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/PowerStateNameFactory.java	(revision 477)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/PowerStateNameFactory.java	(revision 1396)
@@ -6,20 +6,20 @@
 	public static PowerStateName createPowerStateName (String powerStateName){
 		
-		if(powerStateName.equals(StandardPowerStateName.ON.getName()))
+		if(powerStateName.equals(StandardPowerStateName.ON.getLabel()))
 			return StandardPowerStateName.ON;
 		
-		else if(powerStateName.equals(StandardPowerStateName.OFF.getName()))
+		else if(powerStateName.equals(StandardPowerStateName.OFF.getLabel()))
 			return StandardPowerStateName.OFF;
 		
-		else if(powerStateName.equals(StandardPowerStateName.HIBERNATE.getName()))
+		else if(powerStateName.equals(StandardPowerStateName.HIBERNATE.getLabel()))
 			return StandardPowerStateName.HIBERNATE;
 		
-		else if(powerStateName.equals(StandardPowerStateName.SLEEP.getName()))
+		else if(powerStateName.equals(StandardPowerStateName.SLEEP.getLabel()))
 			return StandardPowerStateName.SLEEP;
 		
-		else if(powerStateName.equals(StandardPowerStateName.SUSPEND.getName()))
+		else if(powerStateName.equals(StandardPowerStateName.SUSPEND.getLabel()))
 			return StandardPowerStateName.SUSPEND;
 		
-		else return new UserPowerStateName(powerStateName);
+		else return new CustomPowerStateName(powerStateName);
 	}
 }
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/UserPowerStateName.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/UserPowerStateName.java	(revision 477)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package schedframe.resources.computing.profiles.energy.power;
-
-public class UserPowerStateName implements PowerStateName {
-
-	protected String name;
-
-	public UserPowerStateName(String name) {
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ComputingResource.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ComputingResource.java	(revision 1392)
+++ DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ComputingResource.java	(revision 1396)
@@ -57,5 +57,5 @@
 		initCharacteristics(resDesc);
 		accept(new LoadExtension(resDesc.getLoadProfile(), this));
-		accept(new EnergyExtension.Builder().resource(this).powerProfile(resDesc.getPowerProfile()).airFlowProfile(resDesc.getAirThroughputProfile()).thermalProfile(resDesc.getThermalProfile()).build());	
+		accept(new EnergyExtension.Builder().resource(this).powerProfile(resDesc.getPowerProfile()).airflowProfile(resDesc.getAirflowProfile()).thermalProfile(resDesc.getThermalProfile()).build());	
 	}
 
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/UserResourceType.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/UserResourceType.java	(revision 477)
+++ 	(revision )
@@ -1,16 +1,0 @@
-package schedframe.resources;
-
-
-public class UserResourceType implements ResourceType {
-
-	protected String name;
-
-	public UserResourceType(String name) {
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-	
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/resources/ResourceHistoryChanges.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/resources/ResourceHistoryChanges.java	(revision 1207)
+++ 	(revision )
@@ -1,34 +1,0 @@
-package schedframe.resources;
-
-
-public class ResourceHistoryChanges {
-	
-	private long timestamp;	
-	private String resourceName;
-	private String operation;
-	private String paramter;
-	
-	public ResourceHistoryChanges(long timestamp, String resourceName, String operation, String paramter) {
-		super();
-		this.timestamp = timestamp;
-		this.resourceName = resourceName;
-		this.operation = operation;
-		this.paramter = paramter;
-	}
-	
-	public long getTimestamp() {
-		return timestamp;
-	}
-	
-	public String getResourceName() {
-		return resourceName;
-	}
-	
-	public String getOperation() {
-		return operation;
-	}
-	
-	public String getParamter() {
-		return paramter;
-	}
-}
Index: DCWoRMS/branches/coolemall/src/schedframe/SimulatedEnvironment.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/SimulatedEnvironment.java	(revision 1207)
+++ DCWoRMS/branches/coolemall/src/schedframe/SimulatedEnvironment.java	(revision 1396)
@@ -11,5 +11,5 @@
 
 import schedframe.exceptions.ResourceException;
-import schedframe.resources.ResourceHistoryChanges;
+import schedframe.resources.ResourceHistoryItem;
 import schedframe.resources.computing.ComputingResource;
 import schedframe.scheduling.Scheduler;
@@ -21,5 +21,5 @@
 	protected List<Initializable> toInit;
 	protected Set<String> compResLayers;
-	protected static List<ResourceHistoryChanges> compResHistory = new ArrayList<ResourceHistoryChanges>();
+	protected static List<ResourceHistoryItem> compResHistory = new ArrayList<ResourceHistoryItem>();
 	
 	public SimulatedEnvironment(Scheduler logicalStructure, List<ComputingResource> compResources){
@@ -156,9 +156,9 @@
 
 	public static void traceResource(long timestamp, String resourceName, String operation, String paramter){
-		ResourceHistoryChanges rhc = new ResourceHistoryChanges(timestamp, resourceName, operation, paramter);
+		ResourceHistoryItem rhc = new ResourceHistoryItem(timestamp, resourceName, operation, paramter);
 		compResHistory.add(rhc);
 	}
 
-	public static List<ResourceHistoryChanges> getCompResHistory() {
+	public static List<ResourceHistoryItem> getCompResHistory() {
 		return compResHistory;
 	}
Index: DCWoRMS/branches/coolemall/src/schedframe/StaticResourceLoadCalendar.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/StaticResourceLoadCalendar.java	(revision 477)
+++ 	(revision )
@@ -1,70 +1,0 @@
-package schedframe;
-import gridsim.ResourceCalendar;
-
-import java.util.LinkedList;
-import java.util.Properties;
-
-import schedframe.exceptions.ModuleException;
-import schedframe.scheduling.plugin.grid.Module;
-import schedframe.scheduling.plugin.grid.ModuleType;
-
-public class StaticResourceLoadCalendar extends ResourceCalendar implements Module{
-	
-	private static long seed_; 
-	private static double timeZone_;
-	private static double peakLoad_;
-	private static double offPeakLoad_;
-	private static double holidayLoad_;
-	private static LinkedList<Integer> Weekends_;
-	private static LinkedList<Integer> Holidays_;
-	
-	static{
-		seed_ = 11L * 13L * 17L * 19L * 23L + 1L; 
-		timeZone_ = 0.0;
-		peakLoad_ = 0.0; // the resource load during peak hour
-		offPeakLoad_ = 0.0; // the resource load during off-peak hr
-		holidayLoad_ = 0.0; // the resource load during holiday
-		
-		// incorporates weekends so the grid resource is on 7 days a week
-		Weekends_ = new LinkedList<Integer>();
-		Weekends_.add(java.util.Calendar.SATURDAY);
-		Weekends_.add(java.util.Calendar.SUNDAY);
-
-		// incorporates holidays. However, no holidays are set in this example
-		Holidays_ = new LinkedList<Integer>();
-	}
-
-
-	public StaticResourceLoadCalendar(double timeZone, double peakLoad,
-			double offPeakLoad, double relativeHolidayLoad,
-			LinkedList weekendList, LinkedList holidayList, long seed) {
-		super(timeZone, peakLoad, offPeakLoad, relativeHolidayLoad, weekendList,
-				holidayList, seed);
-		// TODO Auto-generated constructor stub
-	}
-
-	public StaticResourceLoadCalendar(){
-		super(timeZone_, peakLoad_, offPeakLoad_, 
-				holidayLoad_, Weekends_, Holidays_, seed_);
-	}
-
-	@Override
-	public void init(Properties properties) throws ModuleException {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public void dispose() throws ModuleException {
-		// TODO Auto-generated method stub
-		
-	}
-
-	@Override
-	public ModuleType getType() {
-		return ModuleType.RESOURCE_CALENDAR;
-	}
-
-
-
-}
