diff --git a/dream/plugins/AddDemandPlannerGenerator.py b/dream/plugins/AddDemandPlannerGenerator.py
index 00757e600ec4fae8ebd0c82be598a4d40cf64702..013a736adf5880b674c55fb6bdad2447e4f34f74 100644
--- a/dream/plugins/AddDemandPlannerGenerator.py
+++ b/dream/plugins/AddDemandPlannerGenerator.py
@@ -16,6 +16,7 @@ class AddDemandPlannerGenerator(plugin.InputPreparationPlugin):
         nodes=data['graph']['node']
         data_uri_encoded_input_data = data['input'].get(self.configuration_dict['input_id'], {})      
         
+        algorithmAttributes=copy(data['general'])
         
         nodes['DPG']={
             "name": "DemandPlannerGenerator", 
@@ -25,7 +26,7 @@ class AddDemandPlannerGenerator(plugin.InputPreparationPlugin):
             "stop": 0.5,
             "_class": "dream.simulation.EventGenerator.EventGenerator",
             "method": "dream.simulation.applications.DemandPlanning.executor_ACO.main",
-            "argumentDict": {'input':data_uri_encoded_input_data}
+            "argumentDict": {'input':data_uri_encoded_input_data, 'algorithmAttributes':algorithmAttributes}
         }
         #print nodes
         return data
diff --git a/dream/simulation/Examples/DemandPlanningAllInOneEmpty.json b/dream/simulation/Examples/DemandPlanningAllInOneEmpty.json
index ec6e7b6b4c35d7e13463582e2be8611faa0e2fc9..e8c43c7ba8534b5508ea96fdbaf7c0465776bd2c 100644
--- a/dream/simulation/Examples/DemandPlanningAllInOneEmpty.json
+++ b/dream/simulation/Examples/DemandPlanningAllInOneEmpty.json
@@ -2,26 +2,26 @@
   "application_configuration": {
     "general": {
       "properties": {
-        "MaxEarliness": {
+        "maxEarliness": {
           "default": 2, 
           "description": "Maximum Earliness", 
           "name": "Maximum Earliness", 
           "type": "number"
         }, 
-        "MaxLateness": {
+        "maxLateness": {
           "default": 2, 
           "description": "Maximum Lateness", 
           "name": "Maximum Lateness", 
           "type": "number"
         }, 
-        "MinDelta": {
-          "default": 0, 
+        "minDelta": {
+          "default": 1, 
           "description": "Min Delta Target Utilisation", 
           "name": "Min Delta Target Utilisation", 
           "type": "number"
         }, 
         "ACO": {
-          "default": 2, 
+          "default": 0, 
           "description": "ACO", 
           "name": "ACO", 
           "type": "number"
@@ -32,7 +32,7 @@
           "name": "Population size", 
           "type": "number"
         }, 
-        "ACO numberOfGenerations": {
+        "ACOnumberOfGenerations": {
           "default": 8, 
 		  "description": "ACO Number of generations", 
           "name": "ACO Number of generations", 
@@ -50,13 +50,13 @@
           "name": "Minimum Utilisation", 
           "type": "number"
         },
-        "MinDeltaTargerUtilisation": {
+        "minDeltaTargetUtilisation": {
           "default": 0, 
           "description": "Minimum Delta Target Utilisation", 
           "name": "Minimum Delta Target Utilisation", 
           "type": "number"
         },
-        "MinTargerUtilisation": {
+        "minTargetUtilisation": {
           "default": 2, 
           "description": "Minimum Delta Utilisation", 
           "name": "Minimum Delta Utilisation", 
@@ -74,7 +74,7 @@
           "name": "GA population Size", 
           "type": "number"
         },
-        "GA numberOfGenerations": {
+        "GAnumberOfGenerations": {
           "default": 8, 
           "description": "GA Number of Generations", 
           "name": "GA Number of Generations", 
@@ -91,7 +91,13 @@
           "description": "Mutation Probability", 
           "name": "Mutation Probability", 
           "type": "number"
-        }		
+        },
+		"processTimeout": {
+			"default": 300,
+			"description": "Number of seconds before the calculation process is interrupted",
+			"title": "ProcessTimeout",
+			"type": "number"
+		}		
       }
     }, 
     "input": {
@@ -160,17 +166,7 @@
   }, 
   "class_definition": {}, 
   "constraints": {}, 
-  "general": {
-    "TargetPPOS": null, 
-    "TargetPPOSqty": null, 
-    "TargetPPOSweek": null, 
-    "ke_url": "", 
-    "maxEarliness": null, 
-    "maxLateness": null, 
-    "minPackingSize": null, 
-    "numberOfReplications": 1, 
-    "planningHorizon": null
-  }, 
+  "general": {}, 
   "graph": {
     "edge": {}, 
     "node": {}
diff --git a/dream/simulation/applications/DemandPlanning/ImportInput.py b/dream/simulation/applications/DemandPlanning/ImportInput.py
index 7b81d7046f5e074278091f14ca1b21fa5f982cd3..6556093be0bb65672f50e20281a5ec33a98b31cc 100644
--- a/dream/simulation/applications/DemandPlanning/ImportInput.py
+++ b/dream/simulation/applications/DemandPlanning/ImportInput.py
@@ -43,49 +43,36 @@ def my_split(s, seps):
             res += seq.split(sep)
     return res
 
-def ImportInput(input):
-    
+def ImportInput(input, algorithmAttributes):
     # general simulation input
     mime_type, attachement_data = input[len('data:'):].split(';base64,', 1)
     attachement_data = attachement_data.decode('base64')
     wbin = xlrd.open_workbook(file_contents=attachement_data)
-    sh = wbin.sheet_by_name('Scalar_Var')
-    G.maxEarliness = withoutFormat(3,1,sh,1) 
-    G.maxLateness = withoutFormat(4,1,sh,1) 
+    G.maxEarliness = algorithmAttributes.get('maxEarliness',None)
+    G.maxLateness = algorithmAttributes.get('maxLateness',None)
     
     # utilisation calculation
-    if withoutFormat(9,1,sh,1) != '':
-        G.minDeltaUt = withoutFormat(9,1,sh,1)
-        
+    G.minDeltaUt = algorithmAttributes.get('minDelta',None)
+    
     # ACO parameters
-    if withoutFormat(12,1,sh,1) != '':
-        G.ACO = withoutFormat(12,1,sh,1)
-    if withoutFormat(13,1,sh,1) != '':
-        G.popSize = withoutFormat(13,1,sh,1)
-    if withoutFormat(14,1,sh,1) != '':
-        G.noGen = withoutFormat(14,1,sh,1)
+    G.ACO = algorithmAttributes.get('ACO',None)
+    G.popSize=algorithmAttributes.get('ACOpopulationSize',None)
+    G.noGen=algorithmAttributes.get('ACOnumberOfGenerations',None)
     
     # optimisation weights for forecast IP method
-    if withoutFormat(18,1,sh,1) != '':
-        G.weightFactor[0] = withoutFormat(18,1,sh,1)
-    if withoutFormat(19,1,sh,1) != '':
-        G.weightFactor[1] = withoutFormat(19,1,sh,1)
-    if withoutFormat(20,1,sh,1) != '':
-        G.weightFactor[2] = withoutFormat(20,1,sh,1)
-    if withoutFormat(21,1,sh,1) != '':
-        G.weightFactor[3] = withoutFormat(21,1,sh,1)
+    G.weightFactor[0] = algorithmAttributes.get('maxAssignedQty',None)
+    G.weightFactor[1] = algorithmAttributes.get('minUtilisation',None)
+    G.weightFactor[2] = algorithmAttributes.get('minDeltaTargetUtilisation',None)
+    G.weightFactor[3] = algorithmAttributes.get('minTargetUtilisation',None)
+    
+    
     
     # GA parameters
-    if withoutFormat(23,1,sh,1) != '':
-        G.GA = withoutFormat(23,1,sh,1)
-    if withoutFormat(24,1,sh,1) != '':
-        G.popSizeGA = withoutFormat(24,1,sh,1)
-    if withoutFormat(25,1,sh,1) != '':
-        G.noGenGA = withoutFormat(25,1,sh,1)
-    if withoutFormat(26,1,sh,1) != '':
-        G.probXover = withoutFormat(26,1,sh,1)
-    if withoutFormat(27,1,sh,1) != '':
-        G.probMutation = withoutFormat(27,1,sh,1)
+    G.GA= algorithmAttributes.get('GA',None)
+    G.popSizeGA =algorithmAttributes.get('GApopulationSize',None)
+    G.noGenGA =algorithmAttributes.get('GAnumberOfGenerations',None)
+    G.probXover =algorithmAttributes.get('XOver',None)
+    G.probMutation =algorithmAttributes.get('mutationProbability',None)
     
     # Import capacity information...capacity = {Resource: {week {'originalCapacity':, 'remainingCapacity', 'minUtilisation'}
     sh = wbin.sheet_by_name('BN_Capa')
diff --git a/dream/simulation/applications/DemandPlanning/executor_ACO.py b/dream/simulation/applications/DemandPlanning/executor_ACO.py
index 1c22854f74324ec1710699373163a47803de5564..701d14f5abd41f227c5da666ba9b1c5b5ecc8170 100644
--- a/dream/simulation/applications/DemandPlanning/executor_ACO.py
+++ b/dream/simulation/applications/DemandPlanning/executor_ACO.py
@@ -27,8 +27,8 @@ from AllocManagement_Hybrid import AllocManagement_Hybrid2
 from ImportInput import ImportInput
 from outputResults import outputResults
 
-def main(input):
+def main(input, algorithmAttributes):
     assert input, 'no input is provided, the algorithm cannot run'
-    ImportInput(input)   
+    ImportInput(input, algorithmAttributes)   
     AllocManagement_Hybrid2()
     outputResults()