diff --git a/VECTO/File Browser/FileBrowserModule.vb b/VECTO/File Browser/FileBrowserModule.vb
index 12edc623eaf2744ed9960f72112e7cd7754a3920..e96376e88fa89347b859a8ce85522db92ccb07f0 100644
--- a/VECTO/File Browser/FileBrowserModule.vb	
+++ b/VECTO/File Browser/FileBrowserModule.vb	
@@ -64,4 +64,6 @@ Public Module FileBrowserModule
 
     Public ElectricMotorFileBrowser As FileBrowser
     Public REESSFileBrowser As FileBrowser
+
+	public EmADCLossMapFileBrowser As FileBrowser
 End Module
diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb
index 024b88f2354ac8ce6e255b6c3bba3576aecf64b1..cde2a8e615a5bf2934639b8d966395c66059744d 100644
--- a/VECTO/GUI/MainForm.vb
+++ b/VECTO/GUI/MainForm.vb
@@ -141,6 +141,7 @@ Imports TUGraz.VectoCore.Utils
         CrossWindCorrectionFileBrowser = New FileBrowser("vcdx")
         ElectricMotorFileBrowser = New FileBrowser("vem")
         REESSFileBrowser = New FileBrowser("vreess")
+        EmADCLossMapFileBrowser = new FileBrowser("vtlm")
         DriverDecisionFactorVelocityDropFileBrowser = New FileBrowser("DfVelocityDrop")
         DriverDecisionFactorTargetSpeedFileBrowser = New FileBrowser("DfTargetSpeed")
         DriverDecisionFactorVelocityDropFileBrowser.Extensions = New String() {"csv"}
@@ -182,6 +183,7 @@ Imports TUGraz.VectoCore.Utils
         CrossWindCorrectionFileBrowser.Extensions = New String() {"vcdv", "vcdb"}
         ElectricMotorFileBrowser.Extensions = New String() {"vem"}
         REESSFileBrowser.Extensions = New String() {"vreess"}
+        EmADCLossMapFileBrowser.Extensions = new String(){"vtlm"}
 
         ElectricMachineDragTorqueFileBrowser.Extensions = New String() {"vemd"}
         ElectricMachineMaxTorqueFileBrowser.Extensions = New String() {"vemp"}
diff --git a/VECTO/GUI/VehicleForm.Designer.vb b/VECTO/GUI/VehicleForm.Designer.vb
index 61a0eee743bbdf1ff0334240d047f5fd161c7fa1..0abaf20e786129deba78110b42e7b70e09b4c8af 100644
--- a/VECTO/GUI/VehicleForm.Designer.vb
+++ b/VECTO/GUI/VehicleForm.Designer.vb
@@ -153,8 +153,8 @@ Partial Class VehicleForm
         Me.btnBrowseBattery = New System.Windows.Forms.Button()
         Me.tbBattery = New System.Windows.Forms.TextBox()
         Me.gpElectricMotor = New System.Windows.Forms.GroupBox()
-        Me.tbEmEfficiency = New System.Windows.Forms.TextBox()
-        Me.lblEmEfficiency = New System.Windows.Forms.Label()
+        Me.tbEmADCLossMap = New System.Windows.Forms.TextBox()
+        Me.lblEmADCLossmap = New System.Windows.Forms.Label()
         Me.tbRatioEm = New System.Windows.Forms.TextBox()
         Me.lblRatioEm = New System.Windows.Forms.Label()
         Me.tbEmCount = New System.Windows.Forms.TextBox()
@@ -166,12 +166,19 @@ Partial Class VehicleForm
         Me.btnBrowseElectricMotor = New System.Windows.Forms.Button()
         Me.tbElectricMotor = New System.Windows.Forms.TextBox()
         Me.tpTorqueLimits = New System.Windows.Forms.TabPage()
+        Me.gbPropulsionTorque = New System.Windows.Forms.GroupBox()
+        Me.btnPropulsionTorqueLimit = New System.Windows.Forms.Button()
+        Me.tbPropulsionTorqueLimit = New System.Windows.Forms.TextBox()
+        Me.gbEMTorqueLimits = New System.Windows.Forms.GroupBox()
+        Me.btnEmTorqueLimits = New System.Windows.Forms.Button()
+        Me.tbEmTorqueLimits = New System.Windows.Forms.TextBox()
+        Me.bgVehicleTorqueLimits = New System.Windows.Forms.GroupBox()
         Me.lvTorqueLimits = New System.Windows.Forms.ListView()
         Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(),System.Windows.Forms.ColumnHeader)
         Me.ColumnHeader6 = CType(New System.Windows.Forms.ColumnHeader(),System.Windows.Forms.ColumnHeader)
+        Me.btAddMaxTorqueEntry = New System.Windows.Forms.Button()
         Me.Label17 = New System.Windows.Forms.Label()
         Me.btDelMaxTorqueEntry = New System.Windows.Forms.Button()
-        Me.btAddMaxTorqueEntry = New System.Windows.Forms.Button()
         Me.tpADAS = New System.Windows.Forms.TabPage()
         Me.GroupBox5 = New System.Windows.Forms.GroupBox()
         Me.cbAtEcoRollReleaseLockupClutch = New System.Windows.Forms.CheckBox()
@@ -183,13 +190,7 @@ Partial Class VehicleForm
         Me.cbLegislativeClass = New System.Windows.Forms.ComboBox()
         Me.Label21 = New System.Windows.Forms.Label()
         Me.lblTitle = New System.Windows.Forms.Label()
-        Me.bgVehicleTorqueLimits = New System.Windows.Forms.GroupBox()
-        Me.gbEMTorqueLimits = New System.Windows.Forms.GroupBox()
-        Me.btnEmTorqueLimits = New System.Windows.Forms.Button()
-        Me.tbEmTorqueLimits = New System.Windows.Forms.TextBox()
-        Me.gbPropulsionTorque = New System.Windows.Forms.GroupBox()
-        Me.btnPropulsionTorqueLimit = New System.Windows.Forms.Button()
-        Me.tbPropulsionTorqueLimit = New System.Windows.Forms.TextBox()
+        Me.btnEmADCLossMap = New System.Windows.Forms.Button()
         Me.GroupBox6.SuspendLayout
         Me.ToolStrip1.SuspendLayout
         Me.GroupBox7.SuspendLayout
@@ -221,11 +222,11 @@ Partial Class VehicleForm
         Me.gpElectricMotor.SuspendLayout
         Me.pnElectricMotor.SuspendLayout
         Me.tpTorqueLimits.SuspendLayout
+        Me.gbPropulsionTorque.SuspendLayout
+        Me.gbEMTorqueLimits.SuspendLayout
+        Me.bgVehicleTorqueLimits.SuspendLayout
         Me.tpADAS.SuspendLayout
         Me.GroupBox5.SuspendLayout
-        Me.bgVehicleTorqueLimits.SuspendLayout
-        Me.gbEMTorqueLimits.SuspendLayout
-        Me.gbPropulsionTorque.SuspendLayout
         Me.SuspendLayout
         '
         'Label1
@@ -1125,7 +1126,7 @@ Partial Class VehicleForm
         Me.tpGeneral.Controls.Add(Me.GrAirRes)
         Me.tpGeneral.Location = New System.Drawing.Point(4, 22)
         Me.tpGeneral.Name = "tpGeneral"
-        Me.tpGeneral.Padding = New System.Windows.Forms.Padding(3, 3, 3, 3)
+        Me.tpGeneral.Padding = New System.Windows.Forms.Padding(3)
         Me.tpGeneral.Size = New System.Drawing.Size(579, 355)
         Me.tpGeneral.TabIndex = 0
         Me.tpGeneral.Text = "General"
@@ -1140,7 +1141,7 @@ Partial Class VehicleForm
         Me.tpPowertrain.Controls.Add(Me.GroupBox2)
         Me.tpPowertrain.Location = New System.Drawing.Point(4, 22)
         Me.tpPowertrain.Name = "tpPowertrain"
-        Me.tpPowertrain.Padding = New System.Windows.Forms.Padding(3, 3, 3, 3)
+        Me.tpPowertrain.Padding = New System.Windows.Forms.Padding(3)
         Me.tpPowertrain.Size = New System.Drawing.Size(579, 355)
         Me.tpPowertrain.TabIndex = 1
         Me.tpPowertrain.Text = "Powertrain"
@@ -1227,7 +1228,7 @@ Partial Class VehicleForm
         Me.tpElectricComponents.Controls.Add(Me.gpElectricMotor)
         Me.tpElectricComponents.Location = New System.Drawing.Point(4, 22)
         Me.tpElectricComponents.Name = "tpElectricComponents"
-        Me.tpElectricComponents.Padding = New System.Windows.Forms.Padding(3, 3, 3, 3)
+        Me.tpElectricComponents.Padding = New System.Windows.Forms.Padding(3)
         Me.tpElectricComponents.Size = New System.Drawing.Size(579, 355)
         Me.tpElectricComponents.TabIndex = 4
         Me.tpElectricComponents.Text = "Electric Components"
@@ -1332,8 +1333,9 @@ Partial Class VehicleForm
         '
         'gpElectricMotor
         '
-        Me.gpElectricMotor.Controls.Add(Me.tbEmEfficiency)
-        Me.gpElectricMotor.Controls.Add(Me.lblEmEfficiency)
+        Me.gpElectricMotor.Controls.Add(Me.btnEmADCLossMap)
+        Me.gpElectricMotor.Controls.Add(Me.tbEmADCLossMap)
+        Me.gpElectricMotor.Controls.Add(Me.lblEmADCLossmap)
         Me.gpElectricMotor.Controls.Add(Me.tbRatioEm)
         Me.gpElectricMotor.Controls.Add(Me.lblRatioEm)
         Me.gpElectricMotor.Controls.Add(Me.tbEmCount)
@@ -1348,21 +1350,21 @@ Partial Class VehicleForm
         Me.gpElectricMotor.TabStop = false
         Me.gpElectricMotor.Text = "Electric Motor"
         '
-        'tbEmEfficiency
+        'tbEmADCLossMap
         '
-        Me.tbEmEfficiency.Location = New System.Drawing.Point(204, 131)
-        Me.tbEmEfficiency.Name = "tbEmEfficiency"
-        Me.tbEmEfficiency.Size = New System.Drawing.Size(59, 20)
-        Me.tbEmEfficiency.TabIndex = 26
+        Me.tbEmADCLossMap.Location = New System.Drawing.Point(204, 131)
+        Me.tbEmADCLossMap.Name = "tbEmADCLossMap"
+        Me.tbEmADCLossMap.Size = New System.Drawing.Size(323, 20)
+        Me.tbEmADCLossMap.TabIndex = 26
         '
-        'lblEmEfficiency
+        'lblEmADCLossmap
         '
-        Me.lblEmEfficiency.AutoSize = true
-        Me.lblEmEfficiency.Location = New System.Drawing.Point(7, 134)
-        Me.lblEmEfficiency.Name = "lblEmEfficiency"
-        Me.lblEmEfficiency.Size = New System.Drawing.Size(135, 13)
-        Me.lblEmEfficiency.TabIndex = 25
-        Me.lblEmEfficiency.Text = "Efficiency EM to Drivetrain:"
+        Me.lblEmADCLossmap.AutoSize = true
+        Me.lblEmADCLossmap.Location = New System.Drawing.Point(7, 134)
+        Me.lblEmADCLossmap.Name = "lblEmADCLossmap"
+        Me.lblEmADCLossmap.Size = New System.Drawing.Size(100, 13)
+        Me.lblEmADCLossmap.TabIndex = 25
+        Me.lblEmADCLossmap.Text = "Loss Map EM ADC:"
         '
         'tbRatioEm
         '
@@ -1465,6 +1467,73 @@ Partial Class VehicleForm
         Me.tpTorqueLimits.Text = "Torque Limits"
         Me.tpTorqueLimits.UseVisualStyleBackColor = true
         '
+        'gbPropulsionTorque
+        '
+        Me.gbPropulsionTorque.Controls.Add(Me.btnPropulsionTorqueLimit)
+        Me.gbPropulsionTorque.Controls.Add(Me.tbPropulsionTorqueLimit)
+        Me.gbPropulsionTorque.Location = New System.Drawing.Point(3, 236)
+        Me.gbPropulsionTorque.Name = "gbPropulsionTorque"
+        Me.gbPropulsionTorque.Size = New System.Drawing.Size(407, 52)
+        Me.gbPropulsionTorque.TabIndex = 17
+        Me.gbPropulsionTorque.TabStop = false
+        Me.gbPropulsionTorque.Text = "Propulsion Torque Limit"
+        '
+        'btnPropulsionTorqueLimit
+        '
+        Me.btnPropulsionTorqueLimit.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
+        Me.btnPropulsionTorqueLimit.Location = New System.Drawing.Point(331, 17)
+        Me.btnPropulsionTorqueLimit.Name = "btnPropulsionTorqueLimit"
+        Me.btnPropulsionTorqueLimit.Size = New System.Drawing.Size(24, 24)
+        Me.btnPropulsionTorqueLimit.TabIndex = 16
+        Me.btnPropulsionTorqueLimit.UseVisualStyleBackColor = true
+        '
+        'tbPropulsionTorqueLimit
+        '
+        Me.tbPropulsionTorqueLimit.Location = New System.Drawing.Point(6, 20)
+        Me.tbPropulsionTorqueLimit.Name = "tbPropulsionTorqueLimit"
+        Me.tbPropulsionTorqueLimit.Size = New System.Drawing.Size(319, 20)
+        Me.tbPropulsionTorqueLimit.TabIndex = 15
+        '
+        'gbEMTorqueLimits
+        '
+        Me.gbEMTorqueLimits.Controls.Add(Me.btnEmTorqueLimits)
+        Me.gbEMTorqueLimits.Controls.Add(Me.tbEmTorqueLimits)
+        Me.gbEMTorqueLimits.Location = New System.Drawing.Point(3, 178)
+        Me.gbEMTorqueLimits.Name = "gbEMTorqueLimits"
+        Me.gbEMTorqueLimits.Size = New System.Drawing.Size(407, 52)
+        Me.gbEMTorqueLimits.TabIndex = 9
+        Me.gbEMTorqueLimits.TabStop = false
+        Me.gbEMTorqueLimits.Text = "Electric Machine Torque Limits"
+        '
+        'btnEmTorqueLimits
+        '
+        Me.btnEmTorqueLimits.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
+        Me.btnEmTorqueLimits.Location = New System.Drawing.Point(331, 17)
+        Me.btnEmTorqueLimits.Name = "btnEmTorqueLimits"
+        Me.btnEmTorqueLimits.Size = New System.Drawing.Size(24, 24)
+        Me.btnEmTorqueLimits.TabIndex = 16
+        Me.btnEmTorqueLimits.UseVisualStyleBackColor = true
+        '
+        'tbEmTorqueLimits
+        '
+        Me.tbEmTorqueLimits.Location = New System.Drawing.Point(6, 20)
+        Me.tbEmTorqueLimits.Name = "tbEmTorqueLimits"
+        Me.tbEmTorqueLimits.Size = New System.Drawing.Size(319, 20)
+        Me.tbEmTorqueLimits.TabIndex = 15
+        '
+        'bgVehicleTorqueLimits
+        '
+        Me.bgVehicleTorqueLimits.Controls.Add(Me.lvTorqueLimits)
+        Me.bgVehicleTorqueLimits.Controls.Add(Me.btAddMaxTorqueEntry)
+        Me.bgVehicleTorqueLimits.Controls.Add(Me.Label17)
+        Me.bgVehicleTorqueLimits.Controls.Add(Me.btDelMaxTorqueEntry)
+        Me.bgVehicleTorqueLimits.Location = New System.Drawing.Point(3, 9)
+        Me.bgVehicleTorqueLimits.Name = "bgVehicleTorqueLimits"
+        Me.bgVehicleTorqueLimits.Size = New System.Drawing.Size(407, 163)
+        Me.bgVehicleTorqueLimits.TabIndex = 8
+        Me.bgVehicleTorqueLimits.TabStop = false
+        Me.bgVehicleTorqueLimits.Text = "ICE Torque Limits"
+        '
         'lvTorqueLimits
         '
         Me.lvTorqueLimits.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left)  _
@@ -1492,6 +1561,15 @@ Partial Class VehicleForm
         Me.ColumnHeader6.Text = "Max. Torque"
         Me.ColumnHeader6.Width = 172
         '
+        'btAddMaxTorqueEntry
+        '
+        Me.btAddMaxTorqueEntry.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon
+        Me.btAddMaxTorqueEntry.Location = New System.Drawing.Point(6, 127)
+        Me.btAddMaxTorqueEntry.Name = "btAddMaxTorqueEntry"
+        Me.btAddMaxTorqueEntry.Size = New System.Drawing.Size(24, 24)
+        Me.btAddMaxTorqueEntry.TabIndex = 4
+        Me.btAddMaxTorqueEntry.UseVisualStyleBackColor = true
+        '
         'Label17
         '
         Me.Label17.AutoSize = true
@@ -1510,21 +1588,12 @@ Partial Class VehicleForm
         Me.btDelMaxTorqueEntry.TabIndex = 5
         Me.btDelMaxTorqueEntry.UseVisualStyleBackColor = true
         '
-        'btAddMaxTorqueEntry
-        '
-        Me.btAddMaxTorqueEntry.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon
-        Me.btAddMaxTorqueEntry.Location = New System.Drawing.Point(6, 127)
-        Me.btAddMaxTorqueEntry.Name = "btAddMaxTorqueEntry"
-        Me.btAddMaxTorqueEntry.Size = New System.Drawing.Size(24, 24)
-        Me.btAddMaxTorqueEntry.TabIndex = 4
-        Me.btAddMaxTorqueEntry.UseVisualStyleBackColor = true
-        '
         'tpADAS
         '
         Me.tpADAS.Controls.Add(Me.GroupBox5)
         Me.tpADAS.Location = New System.Drawing.Point(4, 22)
         Me.tpADAS.Name = "tpADAS"
-        Me.tpADAS.Padding = New System.Windows.Forms.Padding(3, 3, 3, 3)
+        Me.tpADAS.Padding = New System.Windows.Forms.Padding(3)
         Me.tpADAS.Size = New System.Drawing.Size(579, 355)
         Me.tpADAS.TabIndex = 3
         Me.tpADAS.Text = "ADAS"
@@ -1628,72 +1697,15 @@ Partial Class VehicleForm
         Me.lblTitle.TabIndex = 43
         Me.lblTitle.Text = "Vehicle TITLE"
         '
-        'bgVehicleTorqueLimits
-        '
-        Me.bgVehicleTorqueLimits.Controls.Add(Me.lvTorqueLimits)
-        Me.bgVehicleTorqueLimits.Controls.Add(Me.btAddMaxTorqueEntry)
-        Me.bgVehicleTorqueLimits.Controls.Add(Me.Label17)
-        Me.bgVehicleTorqueLimits.Controls.Add(Me.btDelMaxTorqueEntry)
-        Me.bgVehicleTorqueLimits.Location = New System.Drawing.Point(3, 9)
-        Me.bgVehicleTorqueLimits.Name = "bgVehicleTorqueLimits"
-        Me.bgVehicleTorqueLimits.Size = New System.Drawing.Size(407, 163)
-        Me.bgVehicleTorqueLimits.TabIndex = 8
-        Me.bgVehicleTorqueLimits.TabStop = false
-        Me.bgVehicleTorqueLimits.Text = "ICE Torque Limits"
-        '
-        'gbEMTorqueLimits
-        '
-        Me.gbEMTorqueLimits.Controls.Add(Me.btnEmTorqueLimits)
-        Me.gbEMTorqueLimits.Controls.Add(Me.tbEmTorqueLimits)
-        Me.gbEMTorqueLimits.Location = New System.Drawing.Point(3, 178)
-        Me.gbEMTorqueLimits.Name = "gbEMTorqueLimits"
-        Me.gbEMTorqueLimits.Size = New System.Drawing.Size(407, 52)
-        Me.gbEMTorqueLimits.TabIndex = 9
-        Me.gbEMTorqueLimits.TabStop = false
-        Me.gbEMTorqueLimits.Text = "Electric Machine Torque Limits"
-        '
-        'btnEmTorqueLimits
-        '
-        Me.btnEmTorqueLimits.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
-        Me.btnEmTorqueLimits.Location = New System.Drawing.Point(331, 17)
-        Me.btnEmTorqueLimits.Name = "btnEmTorqueLimits"
-        Me.btnEmTorqueLimits.Size = New System.Drawing.Size(24, 24)
-        Me.btnEmTorqueLimits.TabIndex = 16
-        Me.btnEmTorqueLimits.UseVisualStyleBackColor = true
-        '
-        'tbEmTorqueLimits
-        '
-        Me.tbEmTorqueLimits.Location = New System.Drawing.Point(6, 20)
-        Me.tbEmTorqueLimits.Name = "tbEmTorqueLimits"
-        Me.tbEmTorqueLimits.Size = New System.Drawing.Size(319, 20)
-        Me.tbEmTorqueLimits.TabIndex = 15
-        '
-        'gbPropulsionTorque
-        '
-        Me.gbPropulsionTorque.Controls.Add(Me.btnPropulsionTorqueLimit)
-        Me.gbPropulsionTorque.Controls.Add(Me.tbPropulsionTorqueLimit)
-        Me.gbPropulsionTorque.Location = New System.Drawing.Point(3, 236)
-        Me.gbPropulsionTorque.Name = "gbPropulsionTorque"
-        Me.gbPropulsionTorque.Size = New System.Drawing.Size(407, 52)
-        Me.gbPropulsionTorque.TabIndex = 17
-        Me.gbPropulsionTorque.TabStop = false
-        Me.gbPropulsionTorque.Text = "Propulsion Torque Limit"
-        '
-        'btnPropulsionTorqueLimit
-        '
-        Me.btnPropulsionTorqueLimit.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
-        Me.btnPropulsionTorqueLimit.Location = New System.Drawing.Point(331, 17)
-        Me.btnPropulsionTorqueLimit.Name = "btnPropulsionTorqueLimit"
-        Me.btnPropulsionTorqueLimit.Size = New System.Drawing.Size(24, 24)
-        Me.btnPropulsionTorqueLimit.TabIndex = 16
-        Me.btnPropulsionTorqueLimit.UseVisualStyleBackColor = true
-        '
-        'tbPropulsionTorqueLimit
+        'btnEmADCLossMap
         '
-        Me.tbPropulsionTorqueLimit.Location = New System.Drawing.Point(6, 20)
-        Me.tbPropulsionTorqueLimit.Name = "tbPropulsionTorqueLimit"
-        Me.tbPropulsionTorqueLimit.Size = New System.Drawing.Size(319, 20)
-        Me.tbPropulsionTorqueLimit.TabIndex = 15
+        Me.btnEmADCLossMap.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left),System.Windows.Forms.AnchorStyles)
+        Me.btnEmADCLossMap.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
+        Me.btnEmADCLossMap.Location = New System.Drawing.Point(533, 127)
+        Me.btnEmADCLossMap.Name = "btnEmADCLossMap"
+        Me.btnEmADCLossMap.Size = New System.Drawing.Size(24, 24)
+        Me.btnEmADCLossMap.TabIndex = 28
+        Me.btnEmADCLossMap.UseVisualStyleBackColor = true
         '
         'VehicleForm
         '
@@ -1773,15 +1785,15 @@ Partial Class VehicleForm
         Me.pnElectricMotor.ResumeLayout(false)
         Me.pnElectricMotor.PerformLayout
         Me.tpTorqueLimits.ResumeLayout(false)
+        Me.gbPropulsionTorque.ResumeLayout(false)
+        Me.gbPropulsionTorque.PerformLayout
+        Me.gbEMTorqueLimits.ResumeLayout(false)
+        Me.gbEMTorqueLimits.PerformLayout
+        Me.bgVehicleTorqueLimits.ResumeLayout(false)
+        Me.bgVehicleTorqueLimits.PerformLayout
         Me.tpADAS.ResumeLayout(false)
         Me.GroupBox5.ResumeLayout(false)
         Me.GroupBox5.PerformLayout
-        Me.bgVehicleTorqueLimits.ResumeLayout(false)
-        Me.bgVehicleTorqueLimits.PerformLayout
-        Me.gbEMTorqueLimits.ResumeLayout(false)
-        Me.gbEMTorqueLimits.PerformLayout
-        Me.gbPropulsionTorque.ResumeLayout(false)
-        Me.gbPropulsionTorque.PerformLayout
         Me.ResumeLayout(false)
         Me.PerformLayout
 
@@ -1908,8 +1920,8 @@ End Sub
     Friend WithEvents tpElectricComponents As TabPage
     Friend WithEvents gpElectricMotor As GroupBox
     Friend WithEvents gbBattery As GroupBox
-    Friend WithEvents tbEmEfficiency As TextBox
-    Friend WithEvents lblEmEfficiency As Label
+    Friend WithEvents tbEmADCLossMap As TextBox
+    Friend WithEvents lblEmADCLossmap As Label
     Friend WithEvents tbRatioEm As TextBox
     Friend WithEvents lblRatioEm As Label
     Friend WithEvents tbEmCount As TextBox
@@ -1942,4 +1954,5 @@ End Sub
     Friend WithEvents gbPropulsionTorque As GroupBox
     Friend WithEvents btnPropulsionTorqueLimit As Button
     Friend WithEvents tbPropulsionTorqueLimit As TextBox
+    Friend WithEvents btnEmADCLossMap As Button
 End Class
diff --git a/VECTO/GUI/VehicleForm.resx b/VECTO/GUI/VehicleForm.resx
index 5e567b01ea761ca564e4363b220e171c4f43893a..ab8c10a72dc5c6c7b48c097a5091cb159d692526 100644
--- a/VECTO/GUI/VehicleForm.resx
+++ b/VECTO/GUI/VehicleForm.resx
@@ -129,6 +129,9 @@
   <metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>376, 21</value>
   </metadata>
+  <metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>376, 21</value>
+  </metadata>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="btnBrowseBattery.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
diff --git a/VECTO/GUI/VehicleForm.vb b/VECTO/GUI/VehicleForm.vb
index b34010af2511385f2d73bdf7347f8692789e511b..64cf317593eb9d3e8de51d7db53e1b756affb716 100644
--- a/VECTO/GUI/VehicleForm.vb
+++ b/VECTO/GUI/VehicleForm.vb
@@ -468,7 +468,8 @@ Public Class VehicleForm
 			Dim em As ElectricMachineEntry(Of IElectricMotorEngineeringInputData) = vehicle.Components.ElectricMachines.Entries.First()
 			tbElectricMotor.Text = GetRelativePath(em.ElectricMachine.DataSource.SourceFile, basePath)
 			tbEmCount.Text = em.Count.ToGUIFormat()
-			tbEmEfficiency.Text = em.MechanicalEfficiency.ToGUIFormat()
+			tbEmADCLossMap.Text = If(em.MechanicalTransmissionLossMap Is Nothing, em.MechanicalTransmissionEfficiency.ToGUIFormat(),
+									 GetRelativePath(em.MechanicalTransmissionLossMap.Source, basePath))
 			tbRatioEm.Text = em.Ratio.ToGUIFormat()
 			cbEmPos.SelectedValue = em.Position
 		End If
@@ -614,7 +615,8 @@ Public Class VehicleForm
 			veh.ElectricMotorPosition = CType(cbEmPos.SelectedValue, PowertrainPosition)
 			veh.ElectricMotorCount = tbEmCount.Text.ToInt()
 			veh.ElectricMotorRatio = tbRatioEm.Text.ToDouble()
-			veh.ElectricMotorMechEff = tbEmEfficiency.Text.ToDouble()
+			'veh.ElectricMotorMechEff = tbEmADCLossMap.Text.ToDouble()
+			veh.ElectricMotorMechLossMap.Init(GetPath(file), tbEmADCLossMap.Text)
 		End If
 
 		If (VehicleType = VectoSimulationJobType.ParallelHybridVehicle) AndAlso not String.IsNullOrWhiteSpace(tbEmTorqueLimits.Text) Then
@@ -1144,5 +1146,11 @@ Public Class VehicleForm
 			tbPropulsionTorqueLimit.Text = GetFilenameWithoutDirectory(PropulsionTorqueLimitFileBrowser.Files(0), GetPath(_vehFile))
 
 	End Sub
+
+    Private Sub btnEmADCLossMap_Click(sender As Object, e As EventArgs) Handles btnEmADCLossMap.Click
+        If EmADCLossMapFileBrowser.OpenDialog(FileRepl(tbEmADCLossMap.Text, GetPath(_vehFile))) Then _
+            tbEmADCLossMap.Text = GetFilenameWithoutDirectory(EmADCLossMapFileBrowser.Files(0), GetPath(_vehFile))
+
+    End Sub
 End Class
 
diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index f315aec60aaae4d9cd8be7f11cdfb75f9cdae2b5..2f9a4a6f8f523a1464a6c9e86d80d90861bbe455 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -85,7 +85,8 @@ Public Class Vehicle
     Public ElectricMotorPosition As PowertrainPosition
     Public ElectricMotorCount As Integer
     Public ElectricMotorRatio As Double
-    Public ElectricMotorMechEff As Double
+    'Public ElectricMotorMechEff As Double
+    Public ElectricMotorMechLossMap As SubPath
 
     Public Sub New()
 		_path = ""
@@ -103,6 +104,7 @@ Public Class Vehicle
         PtoCycle = New SubPath()
         BatteryFile = New SubPath()
         ElectricMotorFile = New SubPath()
+		ElectricMotorMechLossMap = new SubPath()
 
         SetDefault()
 	End Sub
@@ -224,6 +226,9 @@ Public Class Vehicle
 		MassMax = 0
 		AxleConfiguration = AxleConfiguration.AxleConfig_4x2
 
+		ElectricMotorFile.Clear()
+		ElectricMotorMechLossMap.Clear()
+
 		SavedInDeclMode = False
 	End Sub
 
@@ -935,7 +940,11 @@ Public Class ElectricMachineWrapper
             Return New List(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData))(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData)() {
             New ElectricMachineEntry(Of IElectricMotorDeclarationInputData) With {
                     .ElectricMachine = Me,
-                    .MechanicalEfficiency = Vehicle.ElectricMotorMechEff, .Position = Vehicle.ElectricMotorPosition, .Ratio = Vehicle.ElectricMotorRatio, .Count = Vehicle.ElectricMotorCount}})
+                    .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), 
+				    .MechanicalTransmissionLossMap = VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath),
+                    .Position = Vehicle.ElectricMotorPosition, 
+                    .Ratio = Vehicle.ElectricMotorRatio, 
+                    .Count = Vehicle.ElectricMotorCount}})
         End Get
     End Property
     Public ReadOnly Property IElectricMachinesEngineeringInputData_Entries As IList(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) Implements IElectricMachinesEngineeringInputData.Entries
@@ -943,7 +952,11 @@ Public Class ElectricMachineWrapper
             Return New List(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData))(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() {
             New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() With {
                     .ElectricMachine = Me,
-                    .MechanicalEfficiency = Vehicle.ElectricMotorMechEff, .Position = Vehicle.ElectricMotorPosition, .Ratio = Vehicle.ElectricMotorRatio, .Count = Vehicle.ElectricMotorCount}})
+                    .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), 
+                    .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Nothing, VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath)),
+                    .Position = Vehicle.ElectricMotorPosition, 
+                    .Ratio = Vehicle.ElectricMotorRatio, 
+                    .Count = Vehicle.ElectricMotorCount}})
 
         End Get
     End Property
diff --git a/VECTO/MainModule.vb b/VECTO/MainModule.vb
index d5e6d0f0350adcbb9902caa55ecee88d658d74ac..5f4544e9c2d8dbc9ad39e4794fb4ec931c98a99e 100644
--- a/VECTO/MainModule.vb
+++ b/VECTO/MainModule.vb
@@ -80,7 +80,7 @@ Module MainModule
         If (string.isnullOrempty(basePath)) Then
             Return filePath
         End If
-		If (Path.GetDirectoryName(filePath).StartsWith(basePath, StringComparison.OrdinalIgnoreCase)) Then
+		If (Path.GetDirectoryName(Path.GetFullPath(filePath)).StartsWith(basePath, StringComparison.OrdinalIgnoreCase)) Then
 			Return Path.GetFullPath(filePath).Substring(basePath.Length + If(basePath.EndsWith("\"), 0, 1))
 		End If
 		Return filePath
diff --git a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
index a6cbc7b60bb5132ace23e856d305aae6902020f3..fdc5238eccb6c756dda3675ebd29c3e25aafeedd 100644
--- a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
+++ b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
@@ -63,7 +63,7 @@ public class JSONFileWriter : IOutputFileWriter
 			return filePath;
 		}
 
-		if (Path.GetDirectoryName(filePath).StartsWith(basePath, StringComparison.OrdinalIgnoreCase)) {
+		if (Path.GetDirectoryName(Path.GetFullPath(filePath)).StartsWith(basePath, StringComparison.OrdinalIgnoreCase)) {
 			return Path.GetFullPath(filePath).Substring(basePath.Length + (basePath.EndsWith(@"\") ? 0 : 1));
 		}
 
@@ -564,13 +564,23 @@ public class JSONFileWriter : IOutputFileWriter
 	private Array GetElectricMotors(IVehicleEngineeringInputData vehicle, string basePath)
 	{
 		//var em = vehicle.Components.ElectricMachines.Entries.First();
-		return vehicle.Components.ElectricMachines.Entries.Select(em =>new Dictionary<string, object>() {
-			{"Count", em.Count},
-			{"Ratio", em.Ratio},
-			{"MechanicalEfficiency", em.MechanicalTransmissionEfficiency},
-			{"MechanicalTransmissionLossMap", GetRelativePath(em.MechanicalTransmissionLossMap.Source, basePath)},
-			{"Position", em.Position.GetName()},
-			{"MotorFile", GetRelativePath(em.ElectricMachine.DataSource.SourceFile, basePath)}
+		return vehicle.Components.ElectricMachines.Entries.Select(em => {
+			var d = new Dictionary<string, object>() {
+				{ "Count", em.Count },
+				{ "Ratio", em.Ratio },
+				{ "Position", em.Position.GetName() },
+				{ "MotorFile", GetRelativePath(em.ElectricMachine.DataSource.SourceFile, basePath) }
+			};
+			if (!double.IsNaN(em.MechanicalTransmissionEfficiency)) {
+				d["MechanicalEfficiency"] = em.MechanicalTransmissionEfficiency;
+
+			}
+
+			if (em.MechanicalTransmissionLossMap != null) {
+				d["MechanicalTransmissionLossMap"] = GetRelativePath(em.MechanicalTransmissionLossMap.Source, basePath);
+
+			}
+				return d;
 		}).ToArray();
 	}