diff --git a/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Engine_325kW_12.7l_WHR.veng b/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Engine_325kW_12.7l_WHR.veng
index c9e3103347659c9a35d1427c3d3799db27c43ff4..813f412e81703e1413ec59528f886ffebbe818b0 100644
--- a/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Engine_325kW_12.7l_WHR.veng	
+++ b/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Engine_325kW_12.7l_WHR.veng	
@@ -1,7 +1,7 @@
 {
   "Header": {
     "CreatedBy": "",
-    "Date": "2019-08-07T08:51:30.3162470Z",
+    "Date": "2019-09-17T13:36:37.3154176Z",
     "AppVersion": "3",
     "FileVersion": 5
   },
@@ -11,30 +11,34 @@
     "Displacement": "12740",
     "IdlingSpeed": 600.0,
     "Inertia": 5.1498,
-	 "Fuels": [
+    "Fuels": [
       {
-		"WHTC-Urban": 0.0,
-		"WHTC-Rural": 0.0,
-		"WHTC-Motorway": 0.0,
-		"WHTC-Engineering": 1.0,
-		"ColdHotBalancingFactor": 0.0,
-		"CFRegPer": 1.0,
-		"FuelType": "DieselCI",
-		"FuelMap": "325kW_WHR.vmap",
-		}
+        "WHTC-Urban": 0.0,
+        "WHTC-Rural": 0.0,
+        "WHTC-Motorway": 0.0,
+        "WHTC-Engineering": 1.0,
+        "ColdHotBalancingFactor": 0.0,
+        "CFRegPer": 1.0,
+        "FuelMap": "325kW_WHR.vmap",
+        "FuelType": "DieselCI"
+      }
     ],
     "RatedPower": 0.0,
     "RatedSpeed": 0.0,
     "MaxTorque": 0.0,
     "FullLoadCurve": "325kW.vfld",
-    "WHRType": "ElectricalOnly",
+    "WHRType": [
+      "ElectricalOutput"
+    ],
     "WHRCorrectionFactors": {
-      "Urban": 0.0,
-      "Rural": 0.0,
-      "Motorway": 0.0,
-      "ColdHotBalancingFactor": 0.0,
-      "CFRegPer": 0.0,
-      "EngineeringCorrectionFactor": 1.02
+      "Electrical": {
+        "Urban": 0.0,
+        "Rural": 0.0,
+        "Motorway": 0.0,
+        "ColdHotBalancingFactor": 0.0,
+        "CFRegPer": 0.0,
+        "EngineeringCorrectionFactor": 1.02
+      }
     }
   }
 }
\ No newline at end of file
diff --git a/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Engine_325kW_12.7l_WHR_DF.veng b/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Engine_325kW_12.7l_WHR_DF.veng
index f77849e027eb33ea85146079a2a8462f3a992e78..a12510e0346f959ff68b554565364ccd05bc8810 100644
--- a/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Engine_325kW_12.7l_WHR_DF.veng	
+++ b/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Engine_325kW_12.7l_WHR_DF.veng	
@@ -1,7 +1,7 @@
 {
   "Header": {
     "CreatedBy": "",
-    "Date": "2019-08-07T15:06:44.7357177Z",
+    "Date": "2019-09-17T13:37:57.2352607Z",
     "AppVersion": "3",
     "FileVersion": 5
   },
@@ -37,14 +37,18 @@
     "RatedSpeed": 0.0,
     "MaxTorque": 0.0,
     "FullLoadCurve": "325kW.vfld",
-    "WHRType": "ElectricalOnly",
+    "WHRType": [
+      "ElectricalOutput"
+    ],
     "WHRCorrectionFactors": {
-      "Urban": 0.0,
-      "Rural": 0.0,
-      "Motorway": 0.0,
-      "ColdHotBalancingFactor": 0.0,
-      "CFRegPer": 0.0,
-      "EngineeringCorrectionFactor": 1.02
+      "Electrical": {
+        "Urban": 0.0,
+        "Rural": 0.0,
+        "Motorway": 0.0,
+        "ColdHotBalancingFactor": 0.0,
+        "CFRegPer": 0.0,
+        "EngineeringCorrectionFactor": 1.02
+      }
     }
   }
 }
\ No newline at end of file
diff --git a/VECTO/GUI/EngineForm.Designer.vb b/VECTO/GUI/EngineForm.Designer.vb
index 93a63de6c4286099b5dd2febdabedfb8c8b80135..a030550927d7fffc10ca79946d0cafcb237d1796 100644
--- a/VECTO/GUI/EngineForm.Designer.vb
+++ b/VECTO/GUI/EngineForm.Designer.vb
@@ -1348,7 +1348,7 @@ Partial Class EngineForm
         Me.TabPage1.Name = "TabPage1"
         Me.TabPage1.Size = New System.Drawing.Size(474, 145)
         Me.TabPage1.TabIndex = 2
-        Me.TabPage1.Text = "tbWHRType"
+        Me.TabPage1.Text = "WHR Type"
         Me.TabPage1.UseVisualStyleBackColor = true
         '
         'cbMechWHRInMap
diff --git a/VECTO/GUI/EngineForm.vb b/VECTO/GUI/EngineForm.vb
index 387e035f177988a90f00a320815fc56abc0372cd..9d768c3235606cabc13d571b248bfa538503fdd9 100644
--- a/VECTO/GUI/EngineForm.vb
+++ b/VECTO/GUI/EngineForm.vb
@@ -67,8 +67,8 @@ Public Class EngineForm
         pnWhtcFuel2.Enabled = cfg.DeclMode
         pnEngCFFuel2.Enabled = not cfg.DeclMode
 
-	    ElectricalWhrTab = tbWHR.TabPages(0)
-	    MechanicalWhrTab = tbWHR.TabPages(1)
+	    ElectricalWhrTab = tbWHR.TabPages(1)
+	    MechanicalWhrTab = tbWHR.TabPages(2)
 	    tbWHR.TabPages.Remove(ElectricalWhrTab)
 	    tbWHR.TabPages.Remove(MechanicalWhrTab)
 
@@ -744,7 +744,7 @@ Public Class EngineForm
     End Sub
 
     Private Sub cbElWHR_CheckedChanged(sender As Object, e As EventArgs) Handles cbElWHR.CheckedChanged
-
+        UpdateWHRTabs()
     End Sub
 
     Private Sub UpdateWHRTabs()
@@ -753,16 +753,16 @@ Public Class EngineForm
 
         tbWHR.TabPages.Remove(tbElectricalWHR)
         tbWHR.TabPages.Remove(tbMechanicalWHR)
-        If (whrtype and WHRType.ElectricalOutput) <> 0 Then
-            if (Not tbWHR.TabPages.Contains(tbElectricalWHR)) then
-                tbWHR.TabPages.Add(ElectricalWhrTab)
-            End If
-        End If
         if ( whrtype and WHRType.MechanicalOutputDrivetrain) <> 0 Then
             if (not tbWHR.TabPages.Contains(tbMechanicalWHR)) then
                 tbWHR.TabPages.Add(MechanicalWhrTab)
             End If
         End If
+        If (whrtype and WHRType.ElectricalOutput) <> 0 Then
+            if (Not tbWHR.TabPages.Contains(tbElectricalWHR)) then
+                tbWHR.TabPages.Add(ElectricalWhrTab)
+            End If
+        End If
     End Sub
 
     private Function GetWHRSelection() As WHRType
diff --git a/VECTO/GUI/VectoJobForm.vb b/VECTO/GUI/VectoJobForm.vb
index 6f7177091539f1c8248728da75a0a5b05bc9ff2c..c06551579c8d1014597e4f4e3d57cc5c6c1927d7 100644
--- a/VECTO/GUI/VectoJobForm.vb
+++ b/VECTO/GUI/VectoJobForm.vb
@@ -531,9 +531,9 @@ Public Class VectoJobForm
 											GetRelativePath(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source, _basePath))
 		End If
 
-		tbEngineStopStartActivationDelay.Text =  If(driver.EngineStopStartData.ActivationDelay?.ToGUIFormat(), DeclarationData.Driver.EngineStopStart.ActivationDelay.ToGUIFormat())
-        tbMaxEngineOffTimespan.Text = If(driver.EngineStopStartData.MaxEngineOffTimespan?.ToGUIFormat(), DeclarationData.Driver.EngineStopStart.MaxEngineOffTimespan.ToGUIFormat())
-        tbEssUtility.Text = driver.EngineStopStartData.UtilityFactor.ToGUIFormat()
+		tbEngineStopStartActivationDelay.Text =  If(driver.EngineStopStartData?.ActivationDelay?.ToGUIFormat(), DeclarationData.Driver.EngineStopStart.ActivationDelay.ToGUIFormat())
+        tbMaxEngineOffTimespan.Text = If(driver.EngineStopStartData?.MaxEngineOffTimespan?.ToGUIFormat(), DeclarationData.Driver.EngineStopStart.MaxEngineOffTimespan.ToGUIFormat())
+        tbEssUtility.Text = If(driver.EngineStopStartData?.UtilityFactor.ToGUIFormat(), DeclarationData.Driver.EngineStopStart.UtilityFactor.ToGUIFormat())
 
 		'-------------------------------------------------------------
 
diff --git a/VECTO/OutputData/JSONFileWriter.vb b/VECTO/OutputData/JSONFileWriter.vb
index 0a59aa67c594e53792dabb0ffe7d3fd24e9f7906..a3a3ed1cd9441bbd25edcf245f1f1d427893e775 100644
--- a/VECTO/OutputData/JSONFileWriter.vb
+++ b/VECTO/OutputData/JSONFileWriter.vb
@@ -71,27 +71,30 @@ Public Class JSONFileWriter
 
 		body.Add("FullLoadCurve", GetRelativePath(eng.EngineModes.First().FullLoadCurve.Source, Path.GetDirectoryName(filename)))
 
+        Dim whrtypes as List(Of String) = New List(Of String)
+        if (eng.WHRType And WHRType.ElectricalOutput) <> 0 
+            whrtypes.Add(WHRType.ElectricalOutput.ToString())
+        End If
+	    if (eng.WHRType And WHRType.MechanicalOutputDrivetrain) <> 0 
+	        whrtypes.Add(WHRType.MechanicalOutputDrivetrain.ToString())
+	    End If
+	    if (eng.WHRType And WHRType.MechanicalOutputICE) <> 0 
+	        whrtypes.Add(WHRType.MechanicalOutputICE.ToString())
+	    End If
 
-		body.add("WHRType", eng.WHRType.ToString())
+	    body.add("WHRType", if(whrtypes.Count > 0, whrtypes, New List(Of String)() From { whrtype.None.ToString() }))
 
-		If (eng.WHRType.IsElectrical()) then
+        Dim whrCF As Dictionary(Of String, Object) = New Dictionary(Of String,Object)
+	    If ((eng.WHRType and whrtype.ElectricalOutput) <> 0) then
 		    Dim whr As Dictionary(Of String,Object) = GetWhr(eng.EngineModes.First().WasteHeatRecoveryDataElectrical)
-		    dim elWhr as Dictionary(Of String, Object) = New Dictionary(Of String,Object)()
-            elWhr.Add("Electrical", whr)
-		    if (body.ContainsKey("WHRCorrectionFactors")) then
-		        body.Add("WHRCorrectionFactors", elWhr)
-            End If
+	        whrCF.Add("Electrical", whr)
 		End If
         
-        if (eng.WHRType.IsMechanical()) Then
+        if ((eng.WHRType and WHRType.MechanicalOutputDrivetrain) <> 0) Then
             Dim whr As Dictionary(Of String,Object) = GetWhr(eng.EngineModes.First().WasteHeatRecoveryDataMechanical)
-            dim mechWhr as Dictionary(Of String, Object) = New Dictionary(Of String,Object)()
-            mechWhr.Add("Mechanical", whr)
-            if (body.ContainsKey("WHRCorrectionFactors")) then
-                body.Add("WHRCorrectionFactors", mechWhr)
-            End If
+            whrCF.Add("Mechanical", whr)           
         End If
-
+	    body.Add("WHRCorrectionFactors", whrCF)
 		WriteFile(header, body, filename)
 	End Sub
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs
index 0ace6c6d52ee59b55740ec94532737d4551a1b76..79571e37bdb52649852e00a37370eb2b7f49cf50 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs
@@ -96,7 +96,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public override WHRType WHRType
 		{
-			get { return Body.GetEx<string>("WHRType").ParseEnum<WHRType>(); }
+			get {
+				var whr = Body["WHRType"];
+				var retVal = WHRType.None;
+				if (whr == null) {
+					return retVal;
+				}
+
+				foreach (var entry in whr) {
+					retVal |= entry.ToString().ParseEnum<WHRType>(); 
+				}
+				return retVal;
+			}
 		}
 
 		protected override IList<IEngineFuelEngineeringInputData> ReadFuels()