diff --git a/VECTO/GUI/ElectricMotorForm.Designer.vb b/VECTO/GUI/ElectricMotorForm.Designer.vb
index e54bab751acbbb7477e5798c6477d7232530ab62..a48b3e03d5a2a2d8514941ed02e190ffc8a33b48 100644
--- a/VECTO/GUI/ElectricMotorForm.Designer.vb
+++ b/VECTO/GUI/ElectricMotorForm.Designer.vb
@@ -79,13 +79,17 @@ Partial Class ElectricMotorForm
         Me.lblContPwrUnit = New System.Windows.Forms.Label()
         Me.tbContPwr = New System.Windows.Forms.TextBox()
         Me.Panel2 = New System.Windows.Forms.Panel()
-        Me.lblOvlBuffer = New System.Windows.Forms.Label()
-        Me.lblOvlBufferUnit = New System.Windows.Forms.Label()
-        Me.tbOvlBuffer = New System.Windows.Forms.TextBox()
+        Me.lblOvlTime = New System.Windows.Forms.Label()
+        Me.lblOvltimeUnit = New System.Windows.Forms.Label()
+        Me.tbOvlTime = New System.Windows.Forms.TextBox()
         Me.Panel3 = New System.Windows.Forms.Panel()
         Me.lblOvlRecovery = New System.Windows.Forms.Label()
         Me.lblOvlRecoveryFactorUnit = New System.Windows.Forms.Label()
         Me.tbOverloadRecoveryFactor = New System.Windows.Forms.TextBox()
+        Me.Panel4 = New System.Windows.Forms.Panel()
+        Me.lblRatedSpeed = New System.Windows.Forms.Label()
+        Me.lblRatedSpeedUnit = New System.Windows.Forms.Label()
+        Me.tbRatedSpeed = New System.Windows.Forms.TextBox()
         Me.ToolStrip1.SuspendLayout
         Me.StatusStrip1.SuspendLayout
         CType(Me.PictureBox1,System.ComponentModel.ISupportInitialize).BeginInit
@@ -95,20 +99,21 @@ Partial Class ElectricMotorForm
         Me.Panel1.SuspendLayout
         Me.Panel2.SuspendLayout
         Me.Panel3.SuspendLayout
+        Me.Panel4.SuspendLayout
         Me.SuspendLayout
         '
         'tbInertia
         '
-        Me.tbInertia.Location = New System.Drawing.Point(163, 8)
+        Me.tbInertia.Location = New System.Drawing.Point(191, 8)
         Me.tbInertia.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.tbInertia.Name = "tbInertia"
-        Me.tbInertia.Size = New System.Drawing.Size(84, 26)
+        Me.tbInertia.Size = New System.Drawing.Size(71, 26)
         Me.tbInertia.TabIndex = 3
         '
         'lblinertiaUnit
         '
         Me.lblinertiaUnit.AutoSize = true
-        Me.lblinertiaUnit.Location = New System.Drawing.Point(258, 13)
+        Me.lblinertiaUnit.Location = New System.Drawing.Point(273, 13)
         Me.lblinertiaUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
         Me.lblinertiaUnit.Name = "lblinertiaUnit"
         Me.lblinertiaUnit.Size = New System.Drawing.Size(52, 20)
@@ -129,7 +134,7 @@ Partial Class ElectricMotorForm
         '
         Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
         Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
-        Me.ButCancel.Location = New System.Drawing.Point(1216, 482)
+        Me.ButCancel.Location = New System.Drawing.Point(1216, 506)
         Me.ButCancel.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.ButCancel.Name = "ButCancel"
         Me.ButCancel.Size = New System.Drawing.Size(112, 35)
@@ -140,7 +145,7 @@ Partial Class ElectricMotorForm
         'ButOK
         '
         Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
-        Me.ButOK.Location = New System.Drawing.Point(1095, 482)
+        Me.ButOK.Location = New System.Drawing.Point(1095, 506)
         Me.ButOK.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.ButOK.Name = "ButOK"
         Me.ButOK.Size = New System.Drawing.Size(112, 35)
@@ -233,7 +238,7 @@ Partial Class ElectricMotorForm
         '
         Me.StatusStrip1.ImageScalingSize = New System.Drawing.Size(24, 24)
         Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus})
-        Me.StatusStrip1.Location = New System.Drawing.Point(0, 523)
+        Me.StatusStrip1.Location = New System.Drawing.Point(0, 547)
         Me.StatusStrip1.Name = "StatusStrip1"
         Me.StatusStrip1.Padding = New System.Windows.Forms.Padding(2, 0, 21, 0)
         Me.StatusStrip1.Size = New System.Drawing.Size(1347, 32)
@@ -303,12 +308,12 @@ Partial Class ElectricMotorForm
         Me.pnInertia.Location = New System.Drawing.Point(18, 166)
         Me.pnInertia.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.pnInertia.Name = "pnInertia"
-        Me.pnInertia.Size = New System.Drawing.Size(318, 46)
+        Me.pnInertia.Size = New System.Drawing.Size(332, 46)
         Me.pnInertia.TabIndex = 3
         '
         'tbDragTorque
         '
-        Me.tbDragTorque.Location = New System.Drawing.Point(18, 393)
+        Me.tbDragTorque.Location = New System.Drawing.Point(18, 432)
         Me.tbDragTorque.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.tbDragTorque.Name = "tbDragTorque"
         Me.tbDragTorque.Size = New System.Drawing.Size(649, 26)
@@ -317,7 +322,7 @@ Partial Class ElectricMotorForm
         'lblDragTorque
         '
         Me.lblDragTorque.AutoSize = true
-        Me.lblDragTorque.Location = New System.Drawing.Point(18, 368)
+        Me.lblDragTorque.Location = New System.Drawing.Point(18, 407)
         Me.lblDragTorque.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
         Me.lblDragTorque.Name = "lblDragTorque"
         Me.lblDragTorque.Size = New System.Drawing.Size(143, 20)
@@ -327,7 +332,7 @@ Partial Class ElectricMotorForm
         'btnBrowseDragCurve
         '
         Me.btnBrowseDragCurve.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
-        Me.btnBrowseDragCurve.Location = New System.Drawing.Point(669, 390)
+        Me.btnBrowseDragCurve.Location = New System.Drawing.Point(669, 429)
         Me.btnBrowseDragCurve.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.btnBrowseDragCurve.Name = "btnBrowseDragCurve"
         Me.btnBrowseDragCurve.Size = New System.Drawing.Size(36, 37)
@@ -338,7 +343,7 @@ Partial Class ElectricMotorForm
         'btnDragCurveOpen
         '
         Me.btnDragCurveOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small
-        Me.btnDragCurveOpen.Location = New System.Drawing.Point(704, 390)
+        Me.btnDragCurveOpen.Location = New System.Drawing.Point(704, 429)
         Me.btnDragCurveOpen.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.btnDragCurveOpen.Name = "btnDragCurveOpen"
         Me.btnDragCurveOpen.Size = New System.Drawing.Size(36, 37)
@@ -349,7 +354,7 @@ Partial Class ElectricMotorForm
         'btnEmMapOpen
         '
         Me.btnEmMapOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small
-        Me.btnEmMapOpen.Location = New System.Drawing.Point(704, 454)
+        Me.btnEmMapOpen.Location = New System.Drawing.Point(704, 493)
         Me.btnEmMapOpen.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.btnEmMapOpen.Name = "btnEmMapOpen"
         Me.btnEmMapOpen.Size = New System.Drawing.Size(36, 37)
@@ -360,7 +365,7 @@ Partial Class ElectricMotorForm
         'btnBrowseEmMap
         '
         Me.btnBrowseEmMap.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
-        Me.btnBrowseEmMap.Location = New System.Drawing.Point(669, 454)
+        Me.btnBrowseEmMap.Location = New System.Drawing.Point(669, 493)
         Me.btnBrowseEmMap.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.btnBrowseEmMap.Name = "btnBrowseEmMap"
         Me.btnBrowseEmMap.Size = New System.Drawing.Size(36, 37)
@@ -371,7 +376,7 @@ Partial Class ElectricMotorForm
         'lblEmMap
         '
         Me.lblEmMap.AutoSize = true
-        Me.lblEmMap.Location = New System.Drawing.Point(18, 432)
+        Me.lblEmMap.Location = New System.Drawing.Point(18, 471)
         Me.lblEmMap.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
         Me.lblEmMap.Name = "lblEmMap"
         Me.lblEmMap.Size = New System.Drawing.Size(242, 20)
@@ -380,7 +385,7 @@ Partial Class ElectricMotorForm
         '
         'tbMap
         '
-        Me.tbMap.Location = New System.Drawing.Point(18, 457)
+        Me.tbMap.Location = New System.Drawing.Point(18, 496)
         Me.tbMap.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.tbMap.Name = "tbMap"
         Me.tbMap.Size = New System.Drawing.Size(649, 26)
@@ -389,7 +394,7 @@ Partial Class ElectricMotorForm
         'btnMaxTorqueCurveOpen
         '
         Me.btnMaxTorqueCurveOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small
-        Me.btnMaxTorqueCurveOpen.Location = New System.Drawing.Point(704, 328)
+        Me.btnMaxTorqueCurveOpen.Location = New System.Drawing.Point(704, 367)
         Me.btnMaxTorqueCurveOpen.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.btnMaxTorqueCurveOpen.Name = "btnMaxTorqueCurveOpen"
         Me.btnMaxTorqueCurveOpen.Size = New System.Drawing.Size(36, 37)
@@ -400,7 +405,7 @@ Partial Class ElectricMotorForm
         'btnBrowseMaxTorque
         '
         Me.btnBrowseMaxTorque.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
-        Me.btnBrowseMaxTorque.Location = New System.Drawing.Point(669, 328)
+        Me.btnBrowseMaxTorque.Location = New System.Drawing.Point(669, 367)
         Me.btnBrowseMaxTorque.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.btnBrowseMaxTorque.Name = "btnBrowseMaxTorque"
         Me.btnBrowseMaxTorque.Size = New System.Drawing.Size(36, 37)
@@ -411,7 +416,7 @@ Partial Class ElectricMotorForm
         'lblMaxTorque
         '
         Me.lblMaxTorque.AutoSize = true
-        Me.lblMaxTorque.Location = New System.Drawing.Point(18, 306)
+        Me.lblMaxTorque.Location = New System.Drawing.Point(18, 345)
         Me.lblMaxTorque.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
         Me.lblMaxTorque.Name = "lblMaxTorque"
         Me.lblMaxTorque.Size = New System.Drawing.Size(325, 20)
@@ -420,7 +425,7 @@ Partial Class ElectricMotorForm
         '
         'tbMaxTorque
         '
-        Me.tbMaxTorque.Location = New System.Drawing.Point(18, 331)
+        Me.tbMaxTorque.Location = New System.Drawing.Point(18, 370)
         Me.tbMaxTorque.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.tbMaxTorque.Name = "tbMaxTorque"
         Me.tbMaxTorque.Size = New System.Drawing.Size(649, 26)
@@ -457,7 +462,7 @@ Partial Class ElectricMotorForm
         Me.Panel1.Location = New System.Drawing.Point(18, 222)
         Me.Panel1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.Panel1.Name = "Panel1"
-        Me.Panel1.Size = New System.Drawing.Size(318, 46)
+        Me.Panel1.Size = New System.Drawing.Size(332, 46)
         Me.Panel1.TabIndex = 25
         '
         'lblContPwr
@@ -473,7 +478,7 @@ Partial Class ElectricMotorForm
         'lblContPwrUnit
         '
         Me.lblContPwrUnit.AutoSize = true
-        Me.lblContPwrUnit.Location = New System.Drawing.Point(258, 11)
+        Me.lblContPwrUnit.Location = New System.Drawing.Point(273, 13)
         Me.lblContPwrUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
         Me.lblContPwrUnit.Name = "lblContPwrUnit"
         Me.lblContPwrUnit.Size = New System.Drawing.Size(32, 20)
@@ -482,57 +487,57 @@ Partial Class ElectricMotorForm
         '
         'tbContPwr
         '
-        Me.tbContPwr.Location = New System.Drawing.Point(163, 6)
+        Me.tbContPwr.Location = New System.Drawing.Point(191, 8)
         Me.tbContPwr.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.tbContPwr.Name = "tbContPwr"
-        Me.tbContPwr.Size = New System.Drawing.Size(84, 26)
+        Me.tbContPwr.Size = New System.Drawing.Size(71, 26)
         Me.tbContPwr.TabIndex = 3
         '
         'Panel2
         '
-        Me.Panel2.Controls.Add(Me.lblOvlBuffer)
-        Me.Panel2.Controls.Add(Me.lblOvlBufferUnit)
-        Me.Panel2.Controls.Add(Me.tbOvlBuffer)
-        Me.Panel2.Location = New System.Drawing.Point(349, 166)
+        Me.Panel2.Controls.Add(Me.lblOvlTime)
+        Me.Panel2.Controls.Add(Me.lblOvltimeUnit)
+        Me.Panel2.Controls.Add(Me.tbOvlTime)
+        Me.Panel2.Location = New System.Drawing.Point(18, 278)
         Me.Panel2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.Panel2.Name = "Panel2"
-        Me.Panel2.Size = New System.Drawing.Size(391, 46)
+        Me.Panel2.Size = New System.Drawing.Size(332, 46)
         Me.Panel2.TabIndex = 25
         '
-        'lblOvlBuffer
+        'lblOvlTime
         '
-        Me.lblOvlBuffer.AutoSize = true
-        Me.lblOvlBuffer.Location = New System.Drawing.Point(4, 11)
-        Me.lblOvlBuffer.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
-        Me.lblOvlBuffer.Name = "lblOvlBuffer"
-        Me.lblOvlBuffer.Size = New System.Drawing.Size(181, 20)
-        Me.lblOvlBuffer.TabIndex = 0
-        Me.lblOvlBuffer.Text = "Thermal Overload Buffer"
+        Me.lblOvlTime.AutoSize = true
+        Me.lblOvlTime.Location = New System.Drawing.Point(4, 11)
+        Me.lblOvlTime.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
+        Me.lblOvlTime.Name = "lblOvlTime"
+        Me.lblOvlTime.Size = New System.Drawing.Size(178, 20)
+        Me.lblOvlTime.TabIndex = 0
+        Me.lblOvlTime.Text = "Peak Performance Time"
         '
-        'lblOvlBufferUnit
+        'lblOvltimeUnit
         '
-        Me.lblOvlBufferUnit.AutoSize = true
-        Me.lblOvlBufferUnit.Location = New System.Drawing.Point(344, 11)
-        Me.lblOvlBufferUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
-        Me.lblOvlBufferUnit.Name = "lblOvlBufferUnit"
-        Me.lblOvlBufferUnit.Size = New System.Drawing.Size(38, 20)
-        Me.lblOvlBufferUnit.TabIndex = 24
-        Me.lblOvlBufferUnit.Text = "[MJ]"
+        Me.lblOvltimeUnit.AutoSize = true
+        Me.lblOvltimeUnit.Location = New System.Drawing.Point(270, 11)
+        Me.lblOvltimeUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
+        Me.lblOvltimeUnit.Name = "lblOvltimeUnit"
+        Me.lblOvltimeUnit.Size = New System.Drawing.Size(25, 20)
+        Me.lblOvltimeUnit.TabIndex = 24
+        Me.lblOvltimeUnit.Text = "[s]"
         '
-        'tbOvlBuffer
+        'tbOvlTime
         '
-        Me.tbOvlBuffer.Location = New System.Drawing.Point(265, 8)
-        Me.tbOvlBuffer.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
-        Me.tbOvlBuffer.Name = "tbOvlBuffer"
-        Me.tbOvlBuffer.Size = New System.Drawing.Size(71, 26)
-        Me.tbOvlBuffer.TabIndex = 3
+        Me.tbOvlTime.Location = New System.Drawing.Point(191, 8)
+        Me.tbOvlTime.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
+        Me.tbOvlTime.Name = "tbOvlTime"
+        Me.tbOvlTime.Size = New System.Drawing.Size(71, 26)
+        Me.tbOvlTime.TabIndex = 3
         '
         'Panel3
         '
         Me.Panel3.Controls.Add(Me.lblOvlRecovery)
         Me.Panel3.Controls.Add(Me.lblOvlRecoveryFactorUnit)
         Me.Panel3.Controls.Add(Me.tbOverloadRecoveryFactor)
-        Me.Panel3.Location = New System.Drawing.Point(349, 222)
+        Me.Panel3.Location = New System.Drawing.Point(346, 278)
         Me.Panel3.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
         Me.Panel3.Name = "Panel3"
         Me.Panel3.Size = New System.Drawing.Size(391, 46)
@@ -566,13 +571,53 @@ Partial Class ElectricMotorForm
         Me.tbOverloadRecoveryFactor.Size = New System.Drawing.Size(72, 26)
         Me.tbOverloadRecoveryFactor.TabIndex = 3
         '
+        'Panel4
+        '
+        Me.Panel4.Controls.Add(Me.lblRatedSpeed)
+        Me.Panel4.Controls.Add(Me.lblRatedSpeedUnit)
+        Me.Panel4.Controls.Add(Me.tbRatedSpeed)
+        Me.Panel4.Location = New System.Drawing.Point(349, 222)
+        Me.Panel4.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
+        Me.Panel4.Name = "Panel4"
+        Me.Panel4.Size = New System.Drawing.Size(391, 46)
+        Me.Panel4.TabIndex = 26
+        '
+        'lblRatedSpeed
+        '
+        Me.lblRatedSpeed.AutoSize = true
+        Me.lblRatedSpeed.Location = New System.Drawing.Point(4, 11)
+        Me.lblRatedSpeed.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
+        Me.lblRatedSpeed.Name = "lblRatedSpeed"
+        Me.lblRatedSpeed.Size = New System.Drawing.Size(183, 20)
+        Me.lblRatedSpeed.TabIndex = 0
+        Me.lblRatedSpeed.Text = "Rated Speed (cont. Pwr)"
+        '
+        'lblRatedSpeedUnit
+        '
+        Me.lblRatedSpeedUnit.AutoSize = true
+        Me.lblRatedSpeedUnit.Location = New System.Drawing.Point(344, 11)
+        Me.lblRatedSpeedUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
+        Me.lblRatedSpeedUnit.Name = "lblRatedSpeedUnit"
+        Me.lblRatedSpeedUnit.Size = New System.Drawing.Size(44, 20)
+        Me.lblRatedSpeedUnit.TabIndex = 24
+        Me.lblRatedSpeedUnit.Text = "[rpm]"
+        '
+        'tbRatedSpeed
+        '
+        Me.tbRatedSpeed.Location = New System.Drawing.Point(265, 8)
+        Me.tbRatedSpeed.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5)
+        Me.tbRatedSpeed.Name = "tbRatedSpeed"
+        Me.tbRatedSpeed.Size = New System.Drawing.Size(71, 26)
+        Me.tbRatedSpeed.TabIndex = 3
+        '
         'ElectricMotorForm
         '
         Me.AcceptButton = Me.ButOK
         Me.AutoScaleDimensions = New System.Drawing.SizeF(9!, 20!)
         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
         Me.CancelButton = Me.ButCancel
-        Me.ClientSize = New System.Drawing.Size(1347, 555)
+        Me.ClientSize = New System.Drawing.Size(1347, 579)
+        Me.Controls.Add(Me.Panel4)
         Me.Controls.Add(Me.Panel3)
         Me.Controls.Add(Me.Panel2)
         Me.Controls.Add(Me.Panel1)
@@ -621,6 +666,8 @@ Partial Class ElectricMotorForm
         Me.Panel2.PerformLayout
         Me.Panel3.ResumeLayout(false)
         Me.Panel3.PerformLayout
+        Me.Panel4.ResumeLayout(false)
+        Me.Panel4.PerformLayout
         Me.ResumeLayout(false)
         Me.PerformLayout
 
@@ -667,11 +714,15 @@ End Sub
     Friend WithEvents lblContPwrUnit As Label
     Friend WithEvents tbContPwr As TextBox
     Friend WithEvents Panel2 As Panel
-    Friend WithEvents lblOvlBuffer As Label
-    Friend WithEvents lblOvlBufferUnit As Label
-    Friend WithEvents tbOvlBuffer As TextBox
+    Friend WithEvents lblOvlTime As Label
+    Friend WithEvents lblOvltimeUnit As Label
+    Friend WithEvents tbOvlTime As TextBox
     Friend WithEvents Panel3 As Panel
     Friend WithEvents lblOvlRecovery As Label
     Friend WithEvents lblOvlRecoveryFactorUnit As Label
     Friend WithEvents tbOverloadRecoveryFactor As TextBox
+    Friend WithEvents Panel4 As Panel
+    Friend WithEvents lblRatedSpeed As Label
+    Friend WithEvents lblRatedSpeedUnit As Label
+    Friend WithEvents tbRatedSpeed As TextBox
 End Class
diff --git a/VECTO/GUI/ElectricMotorForm.vb b/VECTO/GUI/ElectricMotorForm.vb
index d9b73564cc8f49c0b246071301b35aecded58120..84e2887700549ffafc312d5fc1c2734465afbc1c 100644
--- a/VECTO/GUI/ElectricMotorForm.vb
+++ b/VECTO/GUI/ElectricMotorForm.vb
@@ -176,8 +176,9 @@ Public Class ElectricMotorForm
         tbMakeModel.Text = engine.Model
         tbInertia.Text = engine.Inertia.ToGUIFormat()
 
-        tbOvlBuffer.Text = (engine.OverloadBuffer.Value() / 1e6).ToGUIFormat()
+        tbOvlTime.Text = engine.OverloadTime.Value().ToGUIFormat()
         tbContPwr.Text = engine.ContinuousPower.ToGUIFormat()
+        tbRatedSpeed.Text = engine.ContinuousPowerSpeed.AsRPM.ToGUIFormat()
         tbOverloadRecoveryFactor.Text = engine.OverloadRecoveryFactor.ToGUIFormat()
 
         tbDragTorque.Text = GetRelativePath(engine.DragCurve.Source, basePath)
@@ -216,7 +217,8 @@ Public Class ElectricMotorForm
         em.ModelName = tbMakeModel.Text
         If Trim(em.ModelName) = "" Then em.ModelName = "Undefined"
         em.MotorInertia = tbInertia.Text.ToDouble(0)
-        em.ThermalOverloadCapacity = tbOvlBuffer.Text.ToDouble(0)
+        em.PeakPowerTime = tbOvlTime.Text.ToDouble(0)
+        em.RatedSpeed = tbRatedSpeed.Text.ToDouble(0)
         em.ContPwr = tbContPwr.Text.ToDouble(0)
         em.OverloadRecoveryFactor = tbOverloadRecoveryFactor.Text.ToDouble(0)
 
diff --git a/VECTO/Input Files/ElectricMachine.vb b/VECTO/Input Files/ElectricMachine.vb
index ce1ed68248884a7d51869e390703bb67f107ab97..39352455fe5b1ad4b05ffc501205313466df9738 100644
--- a/VECTO/Input Files/ElectricMachine.vb	
+++ b/VECTO/Input Files/ElectricMachine.vb	
@@ -35,8 +35,9 @@ Public Class ElectricMachine
 
     Public ModelName As String
     Public MotorInertia As Double
-    Public ThermalOverloadCapacity As Double
+    Public PeakPowerTime As Double
     Public ContPwr As Double
+    Public RatedSpeed As Double
 
     ''' <summary>
     ''' New instance. Initialise
@@ -222,9 +223,15 @@ Public Class ElectricMachine
         End Get
     End Property
 
-    Public ReadOnly Property OverloadBuffer As Joule Implements IElectricMotorDeclarationInputData.OverloadBuffer
+    Public ReadOnly Property OverloadTime As Second Implements IElectricMotorDeclarationInputData.OverloadTime
     get
-            Return ThermalOverloadCapacity.SI(Unit.SI.Mega.Joule).Cast(of Joule)
+            Return PeakPowerTime.SI(of Second)
+    End Get
+    End Property
+
+    Public ReadOnly Property ConinuousPowerSpeed As PerSecond Implements IElectricMotorDeclarationInputData.ContinuousPowerSpeed
+    get
+            Return RatedSpeed.RPMtoRad()
     End Get
     End Property
 
diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index 29dfe1600eeaa6e6355bffff1b50a86b7fbc1112..fb80a27b1256a8c743c9fb93a55b0f14b0707a97 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -948,7 +948,8 @@ Public Class ElectricMachineWrapper
     Public ReadOnly Property DragCurve As TableData Implements IElectricMotorDeclarationInputData.DragCurve
     Public ReadOnly Property EfficiencyMap As TableData Implements IElectricMotorDeclarationInputData.EfficiencyMap
     Public ReadOnly Property Inertia As KilogramSquareMeter Implements IElectricMotorDeclarationInputData.Inertia
-    Public ReadOnly Property OverloadBuffer As Joule Implements IElectricMotorDeclarationInputData.OverloadBuffer
+    Public ReadOnly Property OverloadTime As Second Implements IElectricMotorDeclarationInputData.OverloadTime
+	Public ReadOnly Property ContinuousPowerSpeed As PerSecond Implements IElectricMotorDeclarationInputData.ContinuousPowerSpeed
     Public ReadOnly Property OverloadRecoveryFactor As Double Implements IElectricMotorDeclarationInputData.OverloadRecoveryFactor
     Public ReadOnly Property ContinuousPower As Watt Implements IElectricMotorDeclarationInputData.ContinuousPower
 End Class
\ No newline at end of file
diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
index 20236534aac213456e433d27bf957ab6f8d3a86a..e788159dce1271e3e795acf517578cecb1e8f42e 100644
--- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
@@ -696,11 +696,13 @@ namespace TUGraz.VectoCommon.InputData
 
 		KilogramSquareMeter Inertia { get; }
 
-		Joule OverloadBuffer { get; }
+		Second OverloadTime { get; }
 
 		double OverloadRecoveryFactor { get; }
 
 		Watt ContinuousPower { get; }
+
+		PerSecond ContinuousPowerSpeed { get; }
 	}
 
 	public interface IElectricMachinesDeclarationInputData
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs
index 031e9e0cc5393745a5fe6936c77ac1b19fb16895..8dd9828e39456399b30e12be17dd7a900fc07f4b 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs
@@ -69,6 +69,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON {
 			get { return Body.GetValueOrDefault<double>("ContinuousPower")?.SI<Watt>() ?? 1e12.SI<Watt>(); }
 		}
 
-		
+		public PerSecond ContinuousPowerSpeed
+		{
+			get { return Body.GetValueOrDefault<double>("ContinuousPowerSpeed")?.RPMtoRad(); }
+		}
+
+		public Second OverloadTime
+		{
+			get
+			{
+				return Body.GetValueOrDefault<double>("OverloadTime")?.SI<Second>() ?? 0.SI<Second>();
+			}
+		}
+
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
index ed209466b5a7d4b6637882ba08597e31e02751b2..1ea7fd5d7878cc9be6ccf6055450285ed3b00d91 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
@@ -683,7 +683,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				EfficiencyMap = ElectricMotorMapReader.Create(motorData.EfficiencyMap, ratio, count, efficiency),
 				Inertia = motorData.Inertia,
 				ContinuousPower = motorData.ContinuousPower * count,
-				OverloadBuffer = motorData.OverloadBuffer * count,
+				ContinuousPowerSpeed = motorData.ContinuousPowerSpeed,
+				OverloadTime = motorData.OverloadTime,
 				OverloadRegenerationFactor = motorData.OverloadRecoveryFactor,
 			};
 		}
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
index 8feb001df2916488df6a1fd9a98b5f3b48c04dc1..0ec72943bb3d777fd32bbbb4a1362a771b3fb0fd 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
@@ -20,8 +20,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 		public Watt ContinuousPower { get; internal set; }
 
 		[SIRange(0, double.MaxValue)]
-		public Joule OverloadBuffer { get; internal set; }
+		public Second OverloadTime { get; internal set; }
 		
+		[SIRange(0, double.MaxValue)]
+		public PerSecond ContinuousPowerSpeed { get; internal set; }
+
 		[SIRange(0, 1)]
 		public double OverloadRegenerationFactor { get; internal set; }
 	}
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs
index c8a187e6792faae524c05a2fae578194eb916080..cfb0a98852a5da4180c3c21a5e197003f67b1fe8 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs
@@ -25,12 +25,28 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		protected internal Joule ThermalBuffer = 0.SI<Joule>();
 		protected internal bool DeRatingActive = false;
 
+		public Joule OverloadBuffer { get; }
+		public NewtonMeter ContinuousTorque { get; }
+
+		public Watt ContinuousPowerLoss { get; }
+
 		public ElectricMotor(IVehicleContainer container, ElectricMotorData data, IElectricMotorControl control, PowertrainPosition position) : base(container)
 		{
 			Control = control;
 			ModelData = data;
 			Position = position;
 			container.AddComponent(this); // We have to do this again because in the base class the position is unknown!
+
+			ContinuousTorque = ModelData.ContinuousPower / ModelData.ContinuousPowerSpeed;
+			var contElPwr =
+				ModelData.EfficiencyMap.LookupElectricPower(ModelData.ContinuousPowerSpeed, -ContinuousTorque).ElectricalPower ??
+				ModelData.EfficiencyMap.LookupElectricPower(ModelData.ContinuousPowerSpeed, ModelData.FullLoadCurve.FullLoadDriveTorque(ModelData.ContinuousPowerSpeed), true).ElectricalPower;
+			ContinuousPowerLoss = -contElPwr - ModelData.ContinuousPower; // loss needs to be positive
+			var maxTqDrive = ModelData.FullLoadCurve.FullLoadDriveTorque(ModelData.ContinuousPowerSpeed);
+			var peakElPwr = ModelData.EfficiencyMap.LookupElectricPower(ModelData.ContinuousPowerSpeed, maxTqDrive, true)
+				.ElectricalPower;
+			var peakPwrLoss = -peakElPwr + ModelData.ContinuousPowerSpeed * maxTqDrive; // losses need to be positive
+			OverloadBuffer = (peakPwrLoss - ContinuousPowerLoss) * ModelData.OverloadTime;
 		}
 
 		public PowertrainPosition Position { get; }
@@ -99,7 +115,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		private NewtonMeter GetMaxRecuperationTorque(Second absTime, Second dt, PerSecond avgSpeed)
 		{
-			var tqContinuousPwr = DeRatingActive ? ModelData.ContinuousPower / avgSpeed : null;
+			var tqContinuousPwr = DeRatingActive ? ContinuousTorque : null;
+			if (!avgSpeed.IsEqual(0)) {
+				tqContinuousPwr = DeRatingActive ? ModelData.ContinuousPower / avgSpeed : null;
+			}
 			var maxEmTorque = VectoMath.Min(tqContinuousPwr, ModelData.FullLoadCurve.FullGenerationTorque(avgSpeed));
 			var electricSystemResponse = ElectricPower.Request(absTime, dt, 0.SI<Watt>(), true);
 			var maxBatPower = electricSystemResponse.MaxPowerDrag;
@@ -111,7 +130,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		private NewtonMeter GetMaxDriveTorque(Second absTime, Second dt, PerSecond avgSpeed)
 		{
-			var tqContinuousPwr = DeRatingActive ? -ModelData.ContinuousPower / avgSpeed : null;
+			var tqContinuousPwr = DeRatingActive ? -ContinuousTorque : null;
+			if (!avgSpeed.IsEqual(0)) {
+				tqContinuousPwr = DeRatingActive ? -ModelData.ContinuousPower / avgSpeed : null;
+			}
 			var maxEmTorque = VectoMath.Max(tqContinuousPwr ,ModelData.FullLoadCurve.FullLoadDriveTorque(avgSpeed));
 			var electricSystemResponse = ElectricPower.Request(absTime, dt, 0.SI<Watt>(), true);
 			var maxBatPower = electricSystemResponse.MaxPowerDrive;
@@ -347,29 +369,31 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			var contribution =
 				(VectoMath.Abs((CurrentState.InTorque - CurrentState.OutTorque) * avgSpeed) -
 				ModelData.ContinuousPower) * simulationInterval;
-			container[ModalResultField.ElectricMotor_OvlBuffer_, Position] = VectoMath.Max(0, (ThermalBuffer + contribution) / ModelData.OverloadBuffer);
+			container[ModalResultField.ElectricMotor_OvlBuffer_, Position] = VectoMath.Max(0, (ThermalBuffer + contribution) / OverloadBuffer);
 		}
 
 		protected override void DoCommitSimulationStep(Second time, Second simulationInterval)
 		{
 			var avgSpeed = (PreviousState.OutAngularVelocity + CurrentState.OutAngularVelocity) / 2;
-			ThermalBuffer += (VectoMath.Abs((CurrentState.InTorque - CurrentState.OutTorque) * avgSpeed) - ModelData.ContinuousPower) * simulationInterval;
+			var losses = (CurrentState.InTorque - CurrentState.OutTorque) * avgSpeed - (CurrentState.ElectricPowerToBattery);
+			ThermalBuffer += (losses - ContinuousPowerLoss) * simulationInterval;
 			if (ThermalBuffer < 0) {
 				ThermalBuffer = 0.SI<Joule>();
 			}
 
 			if (DeRatingActive) {
-				if (ThermalBuffer.IsSmallerOrEqual(ModelData.OverloadBuffer * ModelData.OverloadRegenerationFactor)) {
+				if (ThermalBuffer.IsSmallerOrEqual(OverloadBuffer * ModelData.OverloadRegenerationFactor)) {
 					DeRatingActive = false;
 				}
 			} else {
-				if (ThermalBuffer.IsGreater(ModelData.OverloadBuffer)) {
+				if (ThermalBuffer.IsGreater(OverloadBuffer)) {
 					DeRatingActive = true;
 				}
 			}
 			base.DoCommitSimulationStep(time, simulationInterval);
 		}
 
+		
 		//public NewtonMeter ElectricDragTorque(PerSecond electricMotorSpeed, Second dt, DrivingBehavior drivingBehavior)
 		//{
 		//	return Control.MaxDragTorque(electricMotorSpeed, dt);
diff --git a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
index 9a8daf9561414c59521fcc248633567766dc655f..c110878834870e9c60dd5ccadcc08e3508d26d1c 100644
--- a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
+++ b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
@@ -84,7 +84,8 @@ public class JSONFileWriter : IOutputFileWriter
 		body.Add("EfficiencyMap", GetRelativePath(electricMachine.EfficiencyMap.Source, Path.GetDirectoryName(filename)));
 		body.Add("Inertia", electricMachine.Inertia.Value());
 		body.Add("ContinuousPower", electricMachine.ContinuousPower.Value());
-		body.Add("ThermalOverloadBuffer", electricMachine.OverloadBuffer.Value() / 1e6);
+		body.Add("ContinuousPowerSpeed", electricMachine.ContinuousPowerSpeed.AsRPM);
+		body.Add("OverloadTime", electricMachine.OverloadTime.Value());
 		body.Add("ThermalOverloadRecoveryFactor", electricMachine.OverloadRecoveryFactor);
 		WriteFile(header, body, filename);
     }
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
index df8d547091214f0534784d2fac402790daceaddb..2030de6c148ae69b488a8c0dcf3764e70e5eda35 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
@@ -307,7 +307,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			// energy buffer reached - only P_cont is available
 
 			strategy.ElectricShare = -torque * 0.5;
-			for (; i <= 70; i++) {
+			for (; i <= 73; i++) {
 				var dt = 0.5.SI<Second>();
 				var absTime = i * dt;
 
diff --git a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem
index 5349c859137d90673f911a095bdcd19e813d7f21..807ce0f57e4820d6ca128cff4d7cfcca941b9ebc 100644
--- a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem
+++ b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem
@@ -13,7 +13,8 @@
     "EfficiencyMap": "GenericMap_125kW_485Nm.vemo",
     "Inertia": 0.225,
     "ContinuousPower": 5000000,
-    "ThermalOverloadBuffer": 0.6,
+    "ContinuousPowerSpeed": 2000,
+    "OverloadTime": 30, 
     "ThermalOverloadRecoveryFactor": 0.9
-}
+  }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm_Cont30kW.vem b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm_Cont30kW.vem
index 8f35e87656ff24fec0b8982931473e7aa1e3ce15..ad3eeb3dfa28e54f8dbb60b465600f88cf5ad939 100644
--- a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm_Cont30kW.vem
+++ b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm_Cont30kW.vem
@@ -13,7 +13,8 @@
     "EfficiencyMap": "GenericMap_125kW_485Nm.vemo",
     "Inertia": 0.225,
     "ContinuousPower": 30000,
-    "ThermalOverloadBuffer": 0.7,
+    "ContinuousPowerSpeed": 2000,
+    "OverloadTime": 30,
     "ThermalOverloadRecoveryFactor": 0.9
-}
+  }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/Battery/GenericBattery.vbat b/VectoCore/VectoCoreTest/TestData/Hybrids/Battery/GenericBattery.vbat
index d6b42e32acc57051c055ceea928555f0356df651..f12250cd3c46108ea5f71eeb60e6c35628165d63 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/Battery/GenericBattery.vbat
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/Battery/GenericBattery.vbat
@@ -15,4 +15,4 @@
     "MaxCurrentFactor": 50,
     "SoCCurve": "GenericBattery.vbatv"
   }
-}
\ No newline at end of file
+}
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vem
index 63b5fcce6facc27c59cd450ccf2af27e75b7acbf..ae85d35f0cd30e4411557a991f33895a8a467cc1 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vem
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vem
@@ -13,7 +13,8 @@
     "EfficiencyMap": "GenericMap.vemo",
     "Inertia": 0.15,
     "ContinuousPower": 50000,
-    "ThermalOverloadBuffer": 0.6,
-    "ThermalOverloadRecoveryFactor": 0.9 
+    "ContinuousPowerSpeed": 2000,
+    "OverloadTime": 30,
+    "ThermalOverloadRecoveryFactor": 0.9
   }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vem
index 74a934daae91119a5da613b6787fc05b2ea33d24..04d34afaa3fee9a4a9e0af214e79ff8c7de0d854 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vem
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vem
@@ -7,10 +7,14 @@
 	},
 	"Body": {
 		"SavedInDeclMode": false,
-	"Model": "Generic Electric Motor",
-    "FullLoadCurve": "GenericEMotor240kW.vemp",
-    "DragCurve":  "GenericDrag.vemd", 
+		"Model": "Generic Electric Motor",
+		"FullLoadCurve": "GenericEMotor240kW.vemp",
+		"DragCurve": "GenericDrag.vemd",
 		"EfficiencyMap": "GenericMap240kW.vemo",
-		"Inertia" :  0.2 
+		"Inertia": 0.2,
+		"ContinuousPower": 50000,
+    "ContinuousPowerSpeed": 2000,
+    "OverloadTime": 30,
+    "ThermalOverloadRecoveryFactor": 0.9
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor.vem
index 2d2596a49d91f8bd70e99ea2289219f3acf61ff2..f5b8f8efc19d846b75cb88d0c188536ee58a8731 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor.vem
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor.vem
@@ -13,7 +13,8 @@
 		"DragCurve": "GenericDrag.vemd",
 		"Inertia": 0.15,
 		"ContinuousPower": 5000000,
-    "ThermalOverloadBuffer": 0.6,
-    "ThermalOverloadRecoveryFactor": 0.9
+		"ContinuousPowerSpeed": 2000,
+		"OverloadTime": 30,
+		"ThermalOverloadRecoveryFactor": 0.9
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor240kW.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor240kW.vem
index 0057af67263c0a330401a007ef06190870d2c211..f9eff08ab1fc60e7809bc241d91e484293be49c9 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor240kW.vem
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor240kW.vem
@@ -13,7 +13,8 @@
 		"EfficiencyMap": "GenericMap240kW.vemo",
 		"Inertia": 0.2,
 		"ContinuousPower": 5000000,
-    "ThermalOverloadBuffer": 0.6,
-    "ThermalOverloadRecoveryFactor": 0.9
+		"ContinuousPowerSpeed": 2000,
+		"OverloadTime": 30,
+		"ThermalOverloadRecoveryFactor": 0.9
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2/ElectricMotor/Inputdaten P2 Group 5/Electric components/GenericEMotor_140kW_936Nm.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2/ElectricMotor/Inputdaten P2 Group 5/Electric components/GenericEMotor_140kW_936Nm.vem
index 1a27269d815af6619f636c9744d569e6096e87fe..bc27bb49d54f5db4033a72525b75c7b6de06f6b7 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2/ElectricMotor/Inputdaten P2 Group 5/Electric components/GenericEMotor_140kW_936Nm.vem	
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2/ElectricMotor/Inputdaten P2 Group 5/Electric components/GenericEMotor_140kW_936Nm.vem	
@@ -13,7 +13,8 @@
     "EfficiencyMap": "GenericMap_140kW_936Nm.vemo",
     "Inertia": 0.5,
     "ContinuousPower": 5000000,
-    "ThermalOverloadBuffer": 0.6,
+    "ContinuousPowerSpeed": 2000,
+    "OverloadTime": 30,
     "ThermalOverloadRecoveryFactor": 0.9
-}
+  }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2/GenericEM_47kW.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2/GenericEM_47kW.vem
index 55bf540a4cf9b53443ea9b611c6a3e35600a8151..b3201bca1ae1b0f0917cca773df6e4ce498ddd84 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2/GenericEM_47kW.vem
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2/GenericEM_47kW.vem
@@ -13,7 +13,8 @@
 		"DragCurve": "GenericEM_47kW.vemd",
 		"Inertia": 0.1,
 		"ContinuousPower": 5000000,
-    "ThermalOverloadBuffer": 0.6,
-    "ThermalOverloadRecoveryFactor": 0.9
+		"ContinuousPowerSpeed": 2000,
+		"OverloadTime": 30,
+		"ThermalOverloadRecoveryFactor": 0.9
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2SuperCapOvl/GenericEM_47kW.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2SuperCapOvl/GenericEM_47kW.vem
index 8f60e9a767ef2c7ce938c2695b26ab913b527caf..78ccbdcd2e39838f46a25479d3c329a324193e34 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2SuperCapOvl/GenericEM_47kW.vem
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2SuperCapOvl/GenericEM_47kW.vem
@@ -13,7 +13,8 @@
 		"DragCurve": "GenericEM_47kW.vemd",
 		"Inertia": 0.1,
 		"ContinuousPower": 31000,
-    "ThermalOverloadBuffer": 0.5,
-    "ThermalOverloadRecoveryFactor": 0.9
+		"ContinuousPowerSpeed": 2000,
+		"OverloadTime": 30,
+		"ThermalOverloadRecoveryFactor": 0.9
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group5/GenericEMotor_140kW_936Nm.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group5/GenericEMotor_140kW_936Nm.vem
index 4361bec83fa16d99058599a0fca32037f5a7d36e..0e165bc87bf92aff2806862da017eb4245889bac 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group5/GenericEMotor_140kW_936Nm.vem
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group5/GenericEMotor_140kW_936Nm.vem
@@ -13,7 +13,8 @@
     "EfficiencyMap": "GenericMap_140kW_936Nm.vemo",
     "Inertia": 0.5,
     "ContinuousPower": 5000000,
-    "ThermalOverloadBuffer": 0.6,
+    "ContinuousPowerSpeed": 2000,
+    "OverloadTime": 30,
     "ThermalOverloadRecoveryFactor": 0.9
   }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/Input CityBus 6x2_HEV_P2/Electric components/GenericEMotor_150kW_998Nm.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/Input CityBus 6x2_HEV_P2/Electric components/GenericEMotor_150kW_998Nm.vem
index 10a7b40be0cfaaa5c9e532435581d07d4c635203..68fa7173a4752fdafc2c69abc5a8d811062b9293 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/Input CityBus 6x2_HEV_P2/Electric components/GenericEMotor_150kW_998Nm.vem	
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/Input CityBus 6x2_HEV_P2/Electric components/GenericEMotor_150kW_998Nm.vem	
@@ -13,7 +13,8 @@
     "EfficiencyMap": "GenericMap_150kW_998Nm.vemo",
     "Inertia": 0.545,
     "ContinuousPower": 5000000,
-    "ThermalOverloadBuffer": 0.6,
+    "ContinuousPowerSpeed": 2000,
+    "OverloadTime": 30,
     "ThermalOverloadRecoveryFactor": 0.9
   }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
index e0517dcfbbc8680584a5354aa36e04e85cf759e1..cb1799dbfb6ed0adc4e9b96f03b138e75ea1d6f4 100644
--- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
@@ -186,7 +186,9 @@ namespace TUGraz.VectoCore.Tests.Utils
 			return new EngineeringDataAdapter().CreateElectricMachines(new MockElectricMachinesInputData() {
 				Entries = new[] {
 					new ElectricMachineEntry<IElectricMotorEngineeringInputData>()
-						{ Count = count, ElectricMachine = inputData, Position = pos, Ratio = ratio, MechanicalEfficiency = efficiency}
+					{
+						Count = count, ElectricMachine = inputData, Position = pos, Ratio = ratio, MechanicalEfficiency = efficiency,
+					}
 				}
 			});
 		}