diff --git a/deployment/usecase-5genesis/Dockerfile b/deployment/usecase-5genesis/apex-build/Dockerfile
similarity index 100%
rename from deployment/usecase-5genesis/Dockerfile
rename to deployment/usecase-5genesis/apex-build/Dockerfile
diff --git a/deployment/usecase-5genesis/config/config.json b/deployment/usecase-5genesis/apex-build/config/config.json
similarity index 100%
rename from deployment/usecase-5genesis/config/config.json
rename to deployment/usecase-5genesis/apex-build/config/config.json
diff --git a/deployment/usecase-5genesis/events/Example_Event.json b/deployment/usecase-5genesis/apex-build/events/Example_Event.json
similarity index 100%
rename from deployment/usecase-5genesis/events/Example_Event.json
rename to deployment/usecase-5genesis/apex-build/events/Example_Event.json
diff --git a/deployment/usecase-5genesis/events/trigger-event.json b/deployment/usecase-5genesis/apex-build/events/trigger-event.json
similarity index 100%
rename from deployment/usecase-5genesis/events/trigger-event.json
rename to deployment/usecase-5genesis/apex-build/events/trigger-event.json
diff --git a/deployment/usecase-5genesis/apex-build/logic/Always_Serve_TL.js b/deployment/usecase-5genesis/apex-build/logic/Always_Serve_TL.js
new file mode 100644
index 0000000000000000000000000000000000000000..9c88b9e26f4d2e02f9e9fe599bd2fc35b3a35a34
--- /dev/null
+++ b/deployment/usecase-5genesis/apex-build/logic/Always_Serve_TL.js
@@ -0,0 +1,75 @@
+var logger = executor.logger;
+var time = new Date();
+
+logger.info("##START## Always_Serve_TL");
+
+var deployment_name = executor.inFields.get("deployment_name");
+logger.info("~~deployment_name: " + deployment_name);
+var replica = executor.inFields.get("replica");
+logger.info("~~replica: " + replica);
+var workload_cpu = executor.inFields.get("workload_cpu");
+logger.info("~~workload_cpu: " + workload_cpu);
+var threshold = executor.inFields.get("threshold");
+logger.info("~~threshold: " + threshold);
+var time = executor.inFields.get("time");
+logger.info("~~time: " + time);
+
+// ------------ Start of logic ---------------
+
+var counter_up=0;
+var counter_down=0;
+
+if (workload_cpu>(threshold*0.8) && workload_cpu<threshold) {
+  //counter_up++;
+  if (counter_up=localStorage.getItem('val_up')){
+    if (counter_up<5){
+      counter_up++;
+      localStorage.setItem('val_up',counter_up);
+      localStorage.setItem('val_down',0);
+    } else { //more than 5 times, increase replica and reset the counters
+      replica++;
+      localStorage.setItem('val_up',0);
+      localStorage.setItem('val_down',0);
+    }
+  } else { // First time use without cached value
+    localStorage.setItem('val_up',1);
+    localStorage.setItem('val_down',0);
+  }
+
+} else if (workload_cpu>threshold) {
+  replica++;
+  counter_up = 0;
+  localStorage.setItem('val_up',0);
+  localStorage.setItem('val_down',0);
+} else if (workload_cpu<(threshold*0.2) && replica>1) {
+  if (counter_down=localStorage.getItem('val_down')){
+    if (counter_down<5) {
+      counter_down++;
+      localStorage.setItem('val_down',counter_down);
+      localStorage.setItem('val_up',0);
+    } else {
+      localStorage.setItem('val_down',0);
+      localStorage.setItem('val_up',0);
+      replica--;
+    }
+  }else{
+      localStorage.setItem('val_down',1);
+      localStorage.setItem('val_up',0);
+  }
+} else {
+  replica = 0;
+  counter_up=localStorage.getItem('val_up');
+  counter_down=localStorage.getItem('val_down');
+  document.write("No action taken <br>");
+}
+var result = "Update the number of replica to: "+replica.toString()
+//var result = "Update the number of replica to "+(replica).toString()+"<br>"+"counter_up: "+counter_up.toString()+"<br>"+"counter_down: "+counter_down.toString();
+
+// ------------ End of logic ---------------
+
+executor.outFields.put("action", result);
+
+logger.info("##END## Always_Serve_TL");
+
+var returnValue = true;
+returnValue;
diff --git a/deployment/usecase-5genesis/logic/Example_TL.js b/deployment/usecase-5genesis/apex-build/logic/Example_TL.js
similarity index 100%
rename from deployment/usecase-5genesis/logic/Example_TL.js
rename to deployment/usecase-5genesis/apex-build/logic/Example_TL.js
diff --git a/deployment/usecase-5genesis/apex-build/logic/logic_test.php b/deployment/usecase-5genesis/apex-build/logic/logic_test.php
new file mode 100644
index 0000000000000000000000000000000000000000..7623f56eb215e1e8011d55287bddb07e2d6c0871
--- /dev/null
+++ b/deployment/usecase-5genesis/apex-build/logic/logic_test.php
@@ -0,0 +1,70 @@
+<?php
+/* --------------------------------------
+ * Use the following format to test from a browser
+ *
+ * http://<Host-IP>:<external-port>/?workload=102&threshold=200&replica=1
+ *
+ * */
+  echo "JS Test";
+  echo "<br>";
+  $w=$_GET['workload'];
+  $t=$_GET['threshold'];
+  $r=$_GET['replica'];
+  echo "w=$w, t=$t, r=$r";
+  echo "<br>";
+?>
+
+<script type="text/JavaScript">
+var workload_cpu = <?php echo $w ?>;
+var threshold = <?php echo $t ?>;
+var replica = <?php echo $r ?>;
+var counter_up=0;
+var counter_down=0;
+
+if (workload_cpu>(threshold*0.8) && workload_cpu<threshold) {
+  if (counter_up=localStorage.getItem('val_up')){
+    if (counter_up<5){
+      counter_up++;
+      localStorage.setItem('val_up',counter_up);
+      localStorage.setItem('val_down',0);
+    } else { //more than 5 times, increase replica and reset the counters
+      replica++;
+      localStorage.setItem('val_up',0);
+      localStorage.setItem('val_down',0);
+    }
+  } else { // First time use without cached value
+    localStorage.setItem('val_up',1);
+    localStorage.setItem('val_down',0);
+  }
+
+} else if (workload_cpu>threshold) {
+  replica++;
+  counter_up = 0;
+  localStorage.setItem('val_up',0);
+  localStorage.setItem('val_down',0);
+} else if (workload_cpu<(threshold*0.2) && replica>1) {
+  if (counter_down=localStorage.getItem('val_down')){
+    if (counter_down<5) {
+      counter_down++;
+      localStorage.setItem('val_down',counter_down);
+      localStorage.setItem('val_up',0);
+    } else {
+      localStorage.setItem('val_down',0);
+      localStorage.setItem('val_up',0);
+      replica--;
+    }
+  }else{
+      localStorage.setItem('val_down',1);
+      localStorage.setItem('val_up',0);
+  }
+} else {
+  replica = -1;
+  counter_up=localStorage.getItem('val_up');
+  counter_down=localStorage.getItem('val_down');
+  document.write("No action taken <br>");
+}
+
+var result = "Update the number of replica to "+(replica).toString()+"<br>"+"counter_up: "+counter_up.toString()+"<br>"+"counter_down: "+counter_down.toString();
+document.write(result);
+</script>
+
diff --git a/deployment/usecase-5genesis/logs/logback.xml b/deployment/usecase-5genesis/apex-build/logs/logback.xml
similarity index 100%
rename from deployment/usecase-5genesis/logs/logback.xml
rename to deployment/usecase-5genesis/apex-build/logs/logback.xml
diff --git a/deployment/usecase-5genesis/apex-build/policy-apex/Policy.apex b/deployment/usecase-5genesis/apex-build/policy-apex/Policy.apex
new file mode 100644
index 0000000000000000000000000000000000000000..1960e53d9959f053433e030e17df0e998c52cb57
--- /dev/null
+++ b/deployment/usecase-5genesis/apex-build/policy-apex/Policy.apex
@@ -0,0 +1,63 @@
+
+#----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+model create name=5GENESIS_SURREY_POLICY_MODEL
+
+#----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+##-- Primitive Types --##
+
+schema create		name=String_Type			flavour=Java		schema=java.lang.String
+schema create 		name=Integer_Type			flavour=Java		schema=java.lang.Integer
+schema create 		name=Long_Type				flavour=Java		schema=java.lang.Long
+
+#----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+##-- Events --##
+
+event create 				name=Always_Serve			version="1.0"
+event parameter create 		name=Always_Serve			parName=deployment_name			schemaName=String_Type
+event parameter create 		name=Always_Serve			parName=replica					schemaName=Integer_Type
+event parameter create 		name=Always_Serve			parName=workload_cpu		schemaName=Integer_Type
+event parameter create 		name=Always_Serve			parName=threshold				schemaName=Integer_Type
+event parameter create 		name=Always_Serve			parName=time					schemaName=Long_Type
+
+event create 				name=Always_Serve_Output			version="1.0"
+event parameter create 		name=Always_Serve_Output			parName=action			schemaName=String_Type
+
+#----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+##-- Albums --##
+
+album create				name=Example_Album					scope=GLOBAL			writable=true		schemaName=String_Type
+
+#----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+##-- TASKS --##
+
+task create					name=Always_Serve_Task
+task inputfield create		name=Always_Serve_Task				fieldName=deployment_name			schemaName=String_Type
+task inputfield create		name=Always_Serve_Task				fieldName=replica					schemaName=Integer_Type
+task inputfield create		name=Always_Serve_Task				fieldName=workload_cpu		schemaName=Integer_Type
+task inputfield create		name=Always_Serve_Task				fieldName=threshold					schemaName=Integer_Type
+task inputfield create		name=Always_Serve_Task				fieldName=time						schemaName=Long_Type
+
+task outputfield create		name=Always_Serve_Task				fieldName=action					schemaName=String_Type
+
+task contextref create		name=Always_Serve_Task				albumName=Example_Album
+
+task logic create			name=Always_Serve_Task				logicFlavour=JAVASCRIPT					logic=LS
+#MACROFILE:"logic/Always_Serve_TL.js"
+LE
+
+#----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+##-- POLICIES --##
+
+policy create						name=Always_Serve_Policy		template=FREEFORM				firstState=Trigger_State
+
+policy state create					name=Always_Serve_Policy		stateName=Trigger_State			triggerName=Always_Serve		defaultTaskName=Always_Serve_Task
+policy state output	create			name=Always_Serve_Policy		stateName=Trigger_State			outputName=action 				eventName=Always_Serve_Output
+policy state taskref create			name=Always_Serve_Policy		stateName=Trigger_State			taskName=Always_Serve_Task		outputType=DIRECT			outputName=action
+
+#-------------------------------------------------------------------------------------------------------------------------------------------------
diff --git a/deployment/usecase-5genesis/policy-apex/Policy.apex b/deployment/usecase-5genesis/apex-build/policy-apex/bkp_Policy.apex
similarity index 100%
rename from deployment/usecase-5genesis/policy-apex/Policy.apex
rename to deployment/usecase-5genesis/apex-build/policy-apex/bkp_Policy.apex
diff --git a/deployment/usecase-5genesis/run.bat b/deployment/usecase-5genesis/apex-build/run.bat
similarity index 100%
rename from deployment/usecase-5genesis/run.bat
rename to deployment/usecase-5genesis/apex-build/run.bat
diff --git a/deployment/usecase-5genesis/scripts/REST_Tester.py b/deployment/usecase-5genesis/apex-build/scripts/REST_Tester.py
similarity index 100%
rename from deployment/usecase-5genesis/scripts/REST_Tester.py
rename to deployment/usecase-5genesis/apex-build/scripts/REST_Tester.py
diff --git a/deployment/usecase-5genesis/scripts/start.sh b/deployment/usecase-5genesis/apex-build/scripts/start.sh
similarity index 100%
rename from deployment/usecase-5genesis/scripts/start.sh
rename to deployment/usecase-5genesis/apex-build/scripts/start.sh
diff --git a/deployment/usecase-5genesis/scripts/startTest.sh b/deployment/usecase-5genesis/apex-build/scripts/startTest.sh
similarity index 100%
rename from deployment/usecase-5genesis/scripts/startTest.sh
rename to deployment/usecase-5genesis/apex-build/scripts/startTest.sh
diff --git a/deployment/usecase-5genesis/tosca-template/ToscaTemplate.json b/deployment/usecase-5genesis/apex-build/tosca-template/ToscaTemplate.json
similarity index 100%
rename from deployment/usecase-5genesis/tosca-template/ToscaTemplate.json
rename to deployment/usecase-5genesis/apex-build/tosca-template/ToscaTemplate.json
diff --git a/deployment/usecase-5genesis/apex-build/traffic-chart/.helmignore b/deployment/usecase-5genesis/apex-build/traffic-chart/.helmignore
new file mode 100644
index 0000000000000000000000000000000000000000..0e8a0eb36f4ca2c939201c0d54b5d82a1ea34778
--- /dev/null
+++ b/deployment/usecase-5genesis/apex-build/traffic-chart/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/deployment/usecase-5genesis/apex-build/traffic-chart/Chart.yaml b/deployment/usecase-5genesis/apex-build/traffic-chart/Chart.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..536f13c9898fc4d5c452971a4365d6961d8a5edd
--- /dev/null
+++ b/deployment/usecase-5genesis/apex-build/traffic-chart/Chart.yaml
@@ -0,0 +1,24 @@
+apiVersion: v2
+name: traffic-chart
+description: A Helm chart for Kubernetes
+
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
+type: application
+
+# This is the chart version. This version number should be incremented each time you make changes
+# to the chart and its templates, including the app version.
+# Versions are expected to follow Semantic Versioning (https://semver.org/)
+version: 0.1.0
+
+# This is the version number of the application being deployed. This version number should be
+# incremented each time you make changes to the application. Versions are not expected to
+# follow Semantic Versioning. They should reflect the version the application is using.
+# It is recommended to use it with quotes.
+appVersion: "1.16.0"
diff --git a/deployment/usecase-5genesis/apex-build/traffic-chart/templates/receiver.yaml b/deployment/usecase-5genesis/apex-build/traffic-chart/templates/receiver.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..00fc88a4fb600c6df57c31a7e5fb6e58655385c1
--- /dev/null
+++ b/deployment/usecase-5genesis/apex-build/traffic-chart/templates/receiver.yaml
@@ -0,0 +1,49 @@
+kind: Service
+apiVersion: v1
+metadata:
+  name: traffic-receiver
+spec:
+  selector:
+    app: rcv
+  ports:
+    - name: rcv
+      protocol: "TCP"
+      # Port accessible inside cluster
+      port: 29500
+      # Port to forward to inside the pod
+      targetPort: 29500
+      # Port accessible outside cluster
+      nodePort: 29500
+      #{{/*  type: LoadBalancer*/}}
+  type: NodePort
+
+
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: traffic-receiver
+spec:
+  selector:
+    matchLabels:
+      app: rcv
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        app: rcv
+        allow-all-ingress: "true"
+    spec:
+      containers:
+        - name: server
+          image: gitlab-registry.eps.surrey.ac.uk/noc/ubuntu:iperf3
+          #command: ["sh", "-c", "while true; do sleep 3600; done"]
+          command: ["sh", "-c", "iperf3 -s -p 29500"]
+          ports:
+            - name: rcv-port
+              containerPort: 29500
+
+          imagePullPolicy: IfNotPresent
+      restartPolicy: Always
+
diff --git a/deployment/usecase-5genesis/apex-build/traffic-chart/templates/transmitter.yaml b/deployment/usecase-5genesis/apex-build/traffic-chart/templates/transmitter.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..33148739d3e3de13fbebabb94fc06f1d60a4d4bf
--- /dev/null
+++ b/deployment/usecase-5genesis/apex-build/traffic-chart/templates/transmitter.yaml
@@ -0,0 +1,47 @@
+kind: Service
+apiVersion: v1
+metadata:
+  name: traffic-transmitter
+spec:
+  selector:
+    app: transmitter
+  ports:
+    - name: trans
+      protocol: "TCP"
+      # Port accessible inside cluster
+      port: 29400
+      # Port to forward to inside the pod
+      targetPort: 29400
+      # Port accessible outside cluster
+      nodePort: 29400
+  type: NodePort
+
+
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: traffic-transmitter
+spec:
+  selector:
+    matchLabels:
+      app: transmitter
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        app: transmitter
+        allow-all-ingress: "true"
+    spec:
+      containers:
+        - name: transmitter
+          image: gitlab-registry.eps.surrey.ac.uk/noc/ubuntu:iperf3
+          #command: ["sh", "-c", "while true; do sleep 3600; done"]
+          command: ["sh", "-c", "sleep 5; while true; do iperf3 -t10 -c traffic-receiver -p 29500 -b 50m; sleep 5; done"]
+          ports:
+            - name: ran-port
+              containerPort: 29400
+
+          imagePullPolicy: IfNotPresent
+      restartPolicy: Always
diff --git a/deployment/usecase-5genesis/apex-build/traffic-chart/values.yaml b/deployment/usecase-5genesis/apex-build/traffic-chart/values.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..703983995657ec8d91897da5f2080b76b5e7ffa0
--- /dev/null
+++ b/deployment/usecase-5genesis/apex-build/traffic-chart/values.yaml
@@ -0,0 +1,82 @@
+# Default values for traffic-chart.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+replicaCount: 1
+
+image:
+  repository: nginx
+  pullPolicy: IfNotPresent
+  # Overrides the image tag whose default is the chart appVersion.
+  tag: ""
+
+imagePullSecrets: []
+nameOverride: ""
+fullnameOverride: ""
+
+serviceAccount:
+  # Specifies whether a service account should be created
+  create: true
+  # Annotations to add to the service account
+  annotations: {}
+  # The name of the service account to use.
+  # If not set and create is true, a name is generated using the fullname template
+  name: ""
+
+podAnnotations: {}
+
+podSecurityContext: {}
+  # fsGroup: 2000
+
+securityContext: {}
+  # capabilities:
+  #   drop:
+  #   - ALL
+  # readOnlyRootFilesystem: true
+  # runAsNonRoot: true
+  # runAsUser: 1000
+
+service:
+  type: ClusterIP
+  port: 80
+
+ingress:
+  enabled: false
+  className: ""
+  annotations: {}
+    # kubernetes.io/ingress.class: nginx
+    # kubernetes.io/tls-acme: "true"
+  hosts:
+    - host: chart-example.local
+      paths:
+        - path: /
+          pathType: ImplementationSpecific
+  tls: []
+  #  - secretName: chart-example-tls
+  #    hosts:
+  #      - chart-example.local
+
+resources: {}
+  # We usually recommend not to specify default resources and to leave this as a conscious
+  # choice for the user. This also increases chances charts run on environments with little
+  # resources, such as Minikube. If you do want to specify resources, uncomment the following
+  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+  # limits:
+  #   cpu: 100m
+  #   memory: 128Mi
+  # requests:
+  #   cpu: 100m
+  #   memory: 128Mi
+
+autoscaling:
+  enabled: false
+  minReplicas: 1
+  maxReplicas: 100
+  targetCPUUtilizationPercentage: 80
+  # targetMemoryUtilizationPercentage: 80
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
diff --git a/deployment/usecase-5genesis/logic/Always_Serve_TL.js b/deployment/usecase-5genesis/logic/Always_Serve_TL.js
deleted file mode 100644
index 04492223db4ffc87fd2f9844f2e4d315ca87b586..0000000000000000000000000000000000000000
--- a/deployment/usecase-5genesis/logic/Always_Serve_TL.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var logger = executor.logger;
-var time = new Date();
-
-logger.info("##START## Always_Serve_TL");
-
-var deployment_name = executor.inFields.get("deployment_name");
-logger.info("~~deployment_name: " + deployment_name);
-var replica = executor.inFields.get("replica");
-logger.info("~~replica: " + replica);
-var average_throughput = executor.inFields.get("average_throughput");
-logger.info("~~average_throughput: " + average_throughput);
-var threshold = executor.inFields.get("threshold");
-logger.info("~~threshold: " + threshold);
-var time = executor.inFields.get("time");
-logger.info("~~time: " + time);
-
-// Do something here
-
-var result = "Increase the number of replica by 2";
-
-executor.outFields.put("action", result);
-
-logger.info("##END## Always_Serve_TL");
-
-var returnValue = true;
-returnValue;
diff --git a/deployment/usecase-5genesis/workload-generator/Dockerfile b/deployment/usecase-5genesis/workload-generator/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..3ed32f4930c140f13dad594987e29e51d7328ce9
--- /dev/null
+++ b/deployment/usecase-5genesis/workload-generator/Dockerfile
@@ -0,0 +1,16 @@
+FROM php:7.3-apache
+
+RUN apt-get clean
+RUN apt-get update
+RUN DEBIAN_FRONTEND=noninteractive apt-get install -yq \
+        git \
+        tree \
+        vim \
+        wget \
+	nano
+
+COPY workload_job.php /var/www/html/index.php
+RUN chmod a+rx index.php
+RUN export JOB_LOOP=1000000
+RUN export JOB_VAR=0.0002
+#RUN apt-get install nano
diff --git a/deployment/usecase-5genesis/workload-generator/workload-app.yaml b/deployment/usecase-5genesis/workload-generator/workload-app.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..89fb92885728c343396f38a93cd405b16a039381
--- /dev/null
+++ b/deployment/usecase-5genesis/workload-generator/workload-app.yaml
@@ -0,0 +1,47 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: php-workload-5genesis
+spec:
+  selector:
+    matchLabels:
+      run: php-app
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        run: php-app
+    spec:
+      containers:
+      - name: php-apache
+        image: gitlab-registry.eps.surrey.ac.uk/noc/php-workload:gen7.3
+        env:
+        - name: JOB_VAR
+          value: "0.0002"
+        - name: JOB_LOOP
+          value: "1000000"
+        ports:
+        - name: http
+          containerPort: 80
+        resources:
+          limits:
+            cpu: 300m
+          requests:
+            cpu: 200m
+        imagePullPolicy: Always
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: php-workload-5genesis
+  labels:
+    run: php-workload
+spec:
+  selector:
+    run: php-app
+  ports:
+  - port: 80
+    targetPort: http
+    nodePort: 30080
+  type: NodePort
+
diff --git a/deployment/usecase-5genesis/workload-generator/workload_job.php b/deployment/usecase-5genesis/workload-generator/workload_job.php
new file mode 100644
index 0000000000000000000000000000000000000000..8c34eefc06c6b4e39cc9828ac0fe70a1b895cd21
--- /dev/null
+++ b/deployment/usecase-5genesis/workload-generator/workload_job.php
@@ -0,0 +1,19 @@
+<?php
+  //$x = (float)getenv("JOB_VAR");
+  //$loop = (int)getenv("JOB_LOOP");
+  $x = (float)$_GET['factor'];
+  $loops = (int)$_GET['loops'];
+  echo "JOB_VAR: $x\r\n";
+  echo "<br>";
+  echo "JOB_LOOP: $loops\r\n";
+  echo "<br>";
+
+  for ($i = 0; $i <= $loops; $i++) {
+    $x += sqrt($x);
+  }
+
+  echo "Result: $x\r\n";
+  echo "<br>";
+  echo "Done!\r\n";
+?>
+