diff --git a/VECTO/GUI/BatteryForm.vb b/VECTO/GUI/BatteryForm.vb
index a09bde5f59111a5162cb83fb323881e61a4b619d..cf30bcab3743857266e033e96a92aaf45f4a4996 100644
--- a/VECTO/GUI/BatteryForm.vb
+++ b/VECTO/GUI/BatteryForm.vb
@@ -162,7 +162,7 @@ Public Class BatteryForm
         Dim inputData As IEngineeringInputDataProvider = TryCast(JSONInputDataFactory.ReadComponentData(file),
                                                                 IEngineeringInputDataProvider)
 
-        Dim reess as IREESSPackInputData = inputData.JobInputData.Vehicle.Components.ElectricStorage.REESSPack
+        Dim reess as IREESSPackInputData = inputData.JobInputData.Vehicle.Components.ElectricStorage.ElectricStorageElements.FirstOrDefault().REESSPack
 
         If Cfg.DeclMode <> reess.SavedInDeclarationMode Then
             Select Case WrongMode()
@@ -266,10 +266,10 @@ Public Class BatteryForm
         End Select
 
         If AutoSendTo Then
-            If VehicleForm.Visible Then
-                If UCase(FileRepl(VehicleForm.tbBattery.Text, JobDir)) <> UCase(file) Then _
-                    VehicleForm.tbBattery.Text = GetFilenameWithoutDirectory(file, JobDir)
-                VectoJobForm.UpdatePic()
+            If REESSPAckDialog.Visible Then
+                If UCase(FileRepl(REESSPAckDialog.tbBattery.Text, JobDir)) <> UCase(file) Then _
+                    REESSPAckDialog.tbBattery.Text = GetFilenameWithoutDirectory(file, JobDir)
+                'VectoJobForm.UpdatePic()
             End If
         End If
 
diff --git a/VECTO/GUI/VehicleForm.Designer.vb b/VECTO/GUI/VehicleForm.Designer.vb
index 2f4bd75b086a39b5eac27c9e362fb37b146b6380..c3b5b1058a7e9f77fcc2e6ab1b8351bcade4e5e5 100644
--- a/VECTO/GUI/VehicleForm.Designer.vb
+++ b/VECTO/GUI/VehicleForm.Designer.vb
@@ -138,23 +138,24 @@ Partial Class VehicleForm
         Me.Label23 = New System.Windows.Forms.Label()
         Me.tpElectricComponents = New System.Windows.Forms.TabPage()
         Me.gbBattery = New System.Windows.Forms.GroupBox()
+        Me.lvREESSPacks = New System.Windows.Forms.ListView()
+        Me.chReessPackPack = CType(New System.Windows.Forms.ColumnHeader(),System.Windows.Forms.ColumnHeader)
+        Me.chReessPackCount = CType(New System.Windows.Forms.ColumnHeader(),System.Windows.Forms.ColumnHeader)
+        Me.chReessPackStringId = CType(New System.Windows.Forms.ColumnHeader(),System.Windows.Forms.ColumnHeader)
+        Me.btnAddReessPack = New System.Windows.Forms.Button()
+        Me.lblEditReessPack = New System.Windows.Forms.Label()
+        Me.btnRemoveReessPack = New System.Windows.Forms.Button()
         Me.lblInitialSoCUnit = New System.Windows.Forms.Label()
         Me.tbInitialSoC = New System.Windows.Forms.TextBox()
         Me.lblInitialSoC = New System.Windows.Forms.Label()
-        Me.tbBatteryPackCnt = New System.Windows.Forms.TextBox()
-        Me.lblBatteryPackCnt = New System.Windows.Forms.Label()
-        Me.Panel2 = New System.Windows.Forms.Panel()
-        Me.btnOpenBattery = New System.Windows.Forms.Button()
-        Me.btnBrowseBattery = New System.Windows.Forms.Button()
-        Me.tbBattery = New System.Windows.Forms.TextBox()
         Me.gpElectricMotor = New System.Windows.Forms.GroupBox()
         Me.gbRatiosPerGear = New System.Windows.Forms.GroupBox()
         Me.lvRatioPerGear = New System.Windows.Forms.ListView()
         Me.ColumnHeader11 = CType(New System.Windows.Forms.ColumnHeader(),System.Windows.Forms.ColumnHeader)
         Me.ColumnHeader12 = CType(New System.Windows.Forms.ColumnHeader(),System.Windows.Forms.ColumnHeader)
-        Me.Button1 = New System.Windows.Forms.Button()
+        Me.btnAddEMRatio = New System.Windows.Forms.Button()
         Me.Label29 = New System.Windows.Forms.Label()
-        Me.Button2 = New System.Windows.Forms.Button()
+        Me.btnRemoveEMRatio = New System.Windows.Forms.Button()
         Me.btnEmADCLossMap = New System.Windows.Forms.Button()
         Me.tbEmADCLossMap = New System.Windows.Forms.TextBox()
         Me.lblEmADCLossmap = New System.Windows.Forms.Label()
@@ -234,7 +235,6 @@ Partial Class VehicleForm
         Me.GroupBox9.SuspendLayout
         Me.tpElectricComponents.SuspendLayout
         Me.gbBattery.SuspendLayout
-        Me.Panel2.SuspendLayout
         Me.gpElectricMotor.SuspendLayout
         Me.gbRatiosPerGear.SuspendLayout
         Me.pnElectricMotor.SuspendLayout
@@ -317,7 +317,7 @@ Partial Class VehicleForm
         '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(498, 560)
+        Me.ButOK.Location = New System.Drawing.Point(498, 577)
         Me.ButOK.Name = "ButOK"
         Me.ButOK.Size = New System.Drawing.Size(75, 23)
         Me.ButOK.TabIndex = 5
@@ -328,7 +328,7 @@ Partial Class VehicleForm
         '
         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(579, 560)
+        Me.ButCancel.Location = New System.Drawing.Point(579, 577)
         Me.ButCancel.Name = "ButCancel"
         Me.ButCancel.Size = New System.Drawing.Size(75, 23)
         Me.ButCancel.TabIndex = 6
@@ -779,7 +779,7 @@ Partial Class VehicleForm
         '
         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, 586)
+        Me.StatusStrip1.Location = New System.Drawing.Point(0, 603)
         Me.StatusStrip1.Name = "StatusStrip1"
         Me.StatusStrip1.Size = New System.Drawing.Size(666, 22)
         Me.StatusStrip1.SizingGrip = false
@@ -1077,7 +1077,7 @@ Partial Class VehicleForm
         Me.tcVehicleComponents.Location = New System.Drawing.Point(6, 173)
         Me.tcVehicleComponents.Name = "tcVehicleComponents"
         Me.tcVehicleComponents.SelectedIndex = 0
-        Me.tcVehicleComponents.Size = New System.Drawing.Size(656, 381)
+        Me.tcVehicleComponents.Size = New System.Drawing.Size(656, 400)
         Me.tcVehicleComponents.TabIndex = 40
         '
         'tpGeneral
@@ -1090,7 +1090,7 @@ Partial Class VehicleForm
         Me.tpGeneral.Location = New System.Drawing.Point(4, 22)
         Me.tpGeneral.Name = "tpGeneral"
         Me.tpGeneral.Padding = New System.Windows.Forms.Padding(3)
-        Me.tpGeneral.Size = New System.Drawing.Size(648, 355)
+        Me.tpGeneral.Size = New System.Drawing.Size(648, 374)
         Me.tpGeneral.TabIndex = 0
         Me.tpGeneral.Text = "General"
         Me.tpGeneral.UseVisualStyleBackColor = true
@@ -1104,7 +1104,7 @@ Partial Class VehicleForm
         Me.tpPowertrain.Location = New System.Drawing.Point(4, 22)
         Me.tpPowertrain.Name = "tpPowertrain"
         Me.tpPowertrain.Padding = New System.Windows.Forms.Padding(3)
-        Me.tpPowertrain.Size = New System.Drawing.Size(648, 355)
+        Me.tpPowertrain.Size = New System.Drawing.Size(648, 374)
         Me.tpPowertrain.TabIndex = 1
         Me.tpPowertrain.Text = "Powertrain"
         Me.tpPowertrain.UseVisualStyleBackColor = true
@@ -1191,30 +1191,90 @@ Partial Class VehicleForm
         Me.tpElectricComponents.Location = New System.Drawing.Point(4, 22)
         Me.tpElectricComponents.Name = "tpElectricComponents"
         Me.tpElectricComponents.Padding = New System.Windows.Forms.Padding(3)
-        Me.tpElectricComponents.Size = New System.Drawing.Size(648, 355)
+        Me.tpElectricComponents.Size = New System.Drawing.Size(648, 374)
         Me.tpElectricComponents.TabIndex = 4
         Me.tpElectricComponents.Text = "Electric Components"
         Me.tpElectricComponents.UseVisualStyleBackColor = true
         '
         'gbBattery
         '
+        Me.gbBattery.Controls.Add(Me.lvREESSPacks)
+        Me.gbBattery.Controls.Add(Me.btnAddReessPack)
+        Me.gbBattery.Controls.Add(Me.lblEditReessPack)
+        Me.gbBattery.Controls.Add(Me.btnRemoveReessPack)
         Me.gbBattery.Controls.Add(Me.lblInitialSoCUnit)
         Me.gbBattery.Controls.Add(Me.tbInitialSoC)
         Me.gbBattery.Controls.Add(Me.lblInitialSoC)
-        Me.gbBattery.Controls.Add(Me.tbBatteryPackCnt)
-        Me.gbBattery.Controls.Add(Me.lblBatteryPackCnt)
-        Me.gbBattery.Controls.Add(Me.Panel2)
         Me.gbBattery.Location = New System.Drawing.Point(6, 175)
         Me.gbBattery.Name = "gbBattery"
-        Me.gbBattery.Size = New System.Drawing.Size(633, 118)
+        Me.gbBattery.Size = New System.Drawing.Size(633, 187)
         Me.gbBattery.TabIndex = 27
         Me.gbBattery.TabStop = false
         Me.gbBattery.Text = "Electric Energy Storage system"
         '
+        'lvREESSPacks
+        '
+        Me.lvREESSPacks.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left)  _
+            Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
+        Me.lvREESSPacks.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.chReessPackPack, Me.chReessPackCount, Me.chReessPackStringId})
+        Me.lvREESSPacks.FullRowSelect = true
+        Me.lvREESSPacks.GridLines = true
+        Me.lvREESSPacks.HideSelection = false
+        Me.lvREESSPacks.Location = New System.Drawing.Point(6, 45)
+        Me.lvREESSPacks.MultiSelect = false
+        Me.lvREESSPacks.Name = "lvREESSPacks"
+        Me.lvREESSPacks.Size = New System.Drawing.Size(553, 102)
+        Me.lvREESSPacks.TabIndex = 31
+        Me.lvREESSPacks.TabStop = false
+        Me.lvREESSPacks.UseCompatibleStateImageBehavior = false
+        Me.lvREESSPacks.View = System.Windows.Forms.View.Details
+        '
+        'chReessPackPack
+        '
+        Me.chReessPackPack.Text = "REESS Pack"
+        Me.chReessPackPack.Width = 350
+        '
+        'chReessPackCount
+        '
+        Me.chReessPackCount.Text = "Count"
+        Me.chReessPackCount.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+        '
+        'chReessPackStringId
+        '
+        Me.chReessPackStringId.Text = "String #"
+        Me.chReessPackStringId.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+        '
+        'btnAddReessPack
+        '
+        Me.btnAddReessPack.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon
+        Me.btnAddReessPack.Location = New System.Drawing.Point(6, 153)
+        Me.btnAddReessPack.Name = "btnAddReessPack"
+        Me.btnAddReessPack.Size = New System.Drawing.Size(24, 24)
+        Me.btnAddReessPack.TabIndex = 28
+        Me.btnAddReessPack.UseVisualStyleBackColor = true
+        '
+        'lblEditReessPack
+        '
+        Me.lblEditReessPack.AutoSize = true
+        Me.lblEditReessPack.Location = New System.Drawing.Point(451, 159)
+        Me.lblEditReessPack.Name = "lblEditReessPack"
+        Me.lblEditReessPack.Size = New System.Drawing.Size(106, 13)
+        Me.lblEditReessPack.TabIndex = 30
+        Me.lblEditReessPack.Text = "(Double-Click to Edit)"
+        '
+        'btnRemoveReessPack
+        '
+        Me.btnRemoveReessPack.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon
+        Me.btnRemoveReessPack.Location = New System.Drawing.Point(33, 153)
+        Me.btnRemoveReessPack.Name = "btnRemoveReessPack"
+        Me.btnRemoveReessPack.Size = New System.Drawing.Size(24, 24)
+        Me.btnRemoveReessPack.TabIndex = 29
+        Me.btnRemoveReessPack.UseVisualStyleBackColor = true
+        '
         'lblInitialSoCUnit
         '
         Me.lblInitialSoCUnit.AutoSize = true
-        Me.lblInitialSoCUnit.Location = New System.Drawing.Point(269, 81)
+        Me.lblInitialSoCUnit.Location = New System.Drawing.Point(269, 22)
         Me.lblInitialSoCUnit.Name = "lblInitialSoCUnit"
         Me.lblInitialSoCUnit.Size = New System.Drawing.Size(21, 13)
         Me.lblInitialSoCUnit.TabIndex = 27
@@ -1222,7 +1282,7 @@ Partial Class VehicleForm
         '
         'tbInitialSoC
         '
-        Me.tbInitialSoC.Location = New System.Drawing.Point(204, 78)
+        Me.tbInitialSoC.Location = New System.Drawing.Point(204, 19)
         Me.tbInitialSoC.Name = "tbInitialSoC"
         Me.tbInitialSoC.Size = New System.Drawing.Size(59, 20)
         Me.tbInitialSoC.TabIndex = 26
@@ -1230,69 +1290,13 @@ Partial Class VehicleForm
         'lblInitialSoC
         '
         Me.lblInitialSoC.AutoSize = true
-        Me.lblInitialSoC.Location = New System.Drawing.Point(7, 81)
+        Me.lblInitialSoC.Location = New System.Drawing.Point(7, 22)
         Me.lblInitialSoC.Name = "lblInitialSoC"
         Me.lblInitialSoC.RightToLeft = System.Windows.Forms.RightToLeft.Yes
         Me.lblInitialSoC.Size = New System.Drawing.Size(54, 13)
         Me.lblInitialSoC.TabIndex = 25
         Me.lblInitialSoC.Text = "Initial SoC"
         '
-        'tbBatteryPackCnt
-        '
-        Me.tbBatteryPackCnt.Location = New System.Drawing.Point(204, 52)
-        Me.tbBatteryPackCnt.Name = "tbBatteryPackCnt"
-        Me.tbBatteryPackCnt.Size = New System.Drawing.Size(59, 20)
-        Me.tbBatteryPackCnt.TabIndex = 24
-        '
-        'lblBatteryPackCnt
-        '
-        Me.lblBatteryPackCnt.AutoSize = true
-        Me.lblBatteryPackCnt.Location = New System.Drawing.Point(7, 55)
-        Me.lblBatteryPackCnt.Name = "lblBatteryPackCnt"
-        Me.lblBatteryPackCnt.Size = New System.Drawing.Size(124, 13)
-        Me.lblBatteryPackCnt.TabIndex = 23
-        Me.lblBatteryPackCnt.Text = "Number of RESS Packs:"
-        '
-        'Panel2
-        '
-        Me.Panel2.Controls.Add(Me.btnOpenBattery)
-        Me.Panel2.Controls.Add(Me.btnBrowseBattery)
-        Me.Panel2.Controls.Add(Me.tbBattery)
-        Me.Panel2.Location = New System.Drawing.Point(6, 19)
-        Me.Panel2.Name = "Panel2"
-        Me.Panel2.Size = New System.Drawing.Size(553, 27)
-        Me.Panel2.TabIndex = 19
-        '
-        'btnOpenBattery
-        '
-        Me.btnOpenBattery.Location = New System.Drawing.Point(4, 3)
-        Me.btnOpenBattery.Name = "btnOpenBattery"
-        Me.btnOpenBattery.Size = New System.Drawing.Size(94, 21)
-        Me.btnOpenBattery.TabIndex = 0
-        Me.btnOpenBattery.TabStop = false
-        Me.btnOpenBattery.Text = "REESS Pack"
-        Me.btnOpenBattery.UseVisualStyleBackColor = true
-        '
-        'btnBrowseBattery
-        '
-        Me.btnBrowseBattery.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
-        Me.btnBrowseBattery.Image = CType(resources.GetObject("btnBrowseBattery.Image"),System.Drawing.Image)
-        Me.btnBrowseBattery.Location = New System.Drawing.Point(527, 2)
-        Me.btnBrowseBattery.Name = "btnBrowseBattery"
-        Me.btnBrowseBattery.Size = New System.Drawing.Size(24, 24)
-        Me.btnBrowseBattery.TabIndex = 2
-        Me.btnBrowseBattery.TabStop = false
-        Me.btnBrowseBattery.UseVisualStyleBackColor = true
-        '
-        'tbBattery
-        '
-        Me.tbBattery.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left)  _
-            Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
-        Me.tbBattery.Location = New System.Drawing.Point(104, 4)
-        Me.tbBattery.Name = "tbBattery"
-        Me.tbBattery.Size = New System.Drawing.Size(417, 20)
-        Me.tbBattery.TabIndex = 1
-        '
         'gpElectricMotor
         '
         Me.gpElectricMotor.Controls.Add(Me.gbRatiosPerGear)
@@ -1316,9 +1320,9 @@ Partial Class VehicleForm
         'gbRatiosPerGear
         '
         Me.gbRatiosPerGear.Controls.Add(Me.lvRatioPerGear)
-        Me.gbRatiosPerGear.Controls.Add(Me.Button1)
+        Me.gbRatiosPerGear.Controls.Add(Me.btnAddEMRatio)
         Me.gbRatiosPerGear.Controls.Add(Me.Label29)
-        Me.gbRatiosPerGear.Controls.Add(Me.Button2)
+        Me.gbRatiosPerGear.Controls.Add(Me.btnRemoveEMRatio)
         Me.gbRatiosPerGear.Location = New System.Drawing.Point(444, 12)
         Me.gbRatiosPerGear.Name = "gbRatiosPerGear"
         Me.gbRatiosPerGear.Size = New System.Drawing.Size(181, 145)
@@ -1353,14 +1357,14 @@ Partial Class VehicleForm
         Me.ColumnHeader12.Text = "Ratio"
         Me.ColumnHeader12.Width = 172
         '
-        'Button1
+        'btnAddEMRatio
         '
-        Me.Button1.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon
-        Me.Button1.Location = New System.Drawing.Point(6, 116)
-        Me.Button1.Name = "Button1"
-        Me.Button1.Size = New System.Drawing.Size(24, 24)
-        Me.Button1.TabIndex = 4
-        Me.Button1.UseVisualStyleBackColor = true
+        Me.btnAddEMRatio.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon
+        Me.btnAddEMRatio.Location = New System.Drawing.Point(6, 116)
+        Me.btnAddEMRatio.Name = "btnAddEMRatio"
+        Me.btnAddEMRatio.Size = New System.Drawing.Size(24, 24)
+        Me.btnAddEMRatio.TabIndex = 4
+        Me.btnAddEMRatio.UseVisualStyleBackColor = true
         '
         'Label29
         '
@@ -1371,14 +1375,14 @@ Partial Class VehicleForm
         Me.Label29.TabIndex = 6
         Me.Label29.Text = "(Double-Click to Edit)"
         '
-        'Button2
+        'btnRemoveEMRatio
         '
-        Me.Button2.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon
-        Me.Button2.Location = New System.Drawing.Point(33, 116)
-        Me.Button2.Name = "Button2"
-        Me.Button2.Size = New System.Drawing.Size(24, 24)
-        Me.Button2.TabIndex = 5
-        Me.Button2.UseVisualStyleBackColor = true
+        Me.btnRemoveEMRatio.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon
+        Me.btnRemoveEMRatio.Location = New System.Drawing.Point(33, 116)
+        Me.btnRemoveEMRatio.Name = "btnRemoveEMRatio"
+        Me.btnRemoveEMRatio.Size = New System.Drawing.Size(24, 24)
+        Me.btnRemoveEMRatio.TabIndex = 5
+        Me.btnRemoveEMRatio.UseVisualStyleBackColor = true
         '
         'btnEmADCLossMap
         '
@@ -1502,7 +1506,7 @@ Partial Class VehicleForm
         Me.tpTorqueLimits.Controls.Add(Me.bgVehicleTorqueLimits)
         Me.tpTorqueLimits.Location = New System.Drawing.Point(4, 22)
         Me.tpTorqueLimits.Name = "tpTorqueLimits"
-        Me.tpTorqueLimits.Size = New System.Drawing.Size(648, 355)
+        Me.tpTorqueLimits.Size = New System.Drawing.Size(648, 655)
         Me.tpTorqueLimits.TabIndex = 2
         Me.tpTorqueLimits.Text = "Torque Limits"
         Me.tpTorqueLimits.UseVisualStyleBackColor = true
@@ -1634,7 +1638,7 @@ Partial Class VehicleForm
         Me.tpADAS.Location = New System.Drawing.Point(4, 22)
         Me.tpADAS.Name = "tpADAS"
         Me.tpADAS.Padding = New System.Windows.Forms.Padding(3)
-        Me.tpADAS.Size = New System.Drawing.Size(648, 355)
+        Me.tpADAS.Size = New System.Drawing.Size(648, 655)
         Me.tpADAS.TabIndex = 3
         Me.tpADAS.Text = "ADAS"
         Me.tpADAS.UseVisualStyleBackColor = true
@@ -1715,7 +1719,7 @@ Partial Class VehicleForm
         Me.tpRoadSweeper.Controls.Add(Me.gbPTO)
         Me.tpRoadSweeper.Location = New System.Drawing.Point(4, 22)
         Me.tpRoadSweeper.Name = "tpRoadSweeper"
-        Me.tpRoadSweeper.Size = New System.Drawing.Size(648, 355)
+        Me.tpRoadSweeper.Size = New System.Drawing.Size(648, 655)
         Me.tpRoadSweeper.TabIndex = 4
         Me.tpRoadSweeper.Text = "PTO"
         Me.tpRoadSweeper.UseVisualStyleBackColor = true
@@ -1902,7 +1906,7 @@ Partial Class VehicleForm
         Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!)
         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
         Me.CancelButton = Me.ButCancel
-        Me.ClientSize = New System.Drawing.Size(666, 608)
+        Me.ClientSize = New System.Drawing.Size(666, 625)
         Me.Controls.Add(Me.lblTitle)
         Me.Controls.Add(Me.Label21)
         Me.Controls.Add(Me.cbLegislativeClass)
@@ -1964,8 +1968,6 @@ Partial Class VehicleForm
         Me.tpElectricComponents.ResumeLayout(false)
         Me.gbBattery.ResumeLayout(false)
         Me.gbBattery.PerformLayout
-        Me.Panel2.ResumeLayout(false)
-        Me.Panel2.PerformLayout
         Me.gpElectricMotor.ResumeLayout(false)
         Me.gpElectricMotor.PerformLayout
         Me.gbRatiosPerGear.ResumeLayout(false)
@@ -2134,12 +2136,6 @@ End Sub
     Friend WithEvents btnOpenElectricMotor As Button
     Friend WithEvents btnBrowseElectricMotor As Button
     Friend WithEvents tbElectricMotor As TextBox
-    Friend WithEvents tbBatteryPackCnt As TextBox
-    Friend WithEvents lblBatteryPackCnt As Label
-    Friend WithEvents Panel2 As Panel
-    Friend WithEvents btnOpenBattery As Button
-    Friend WithEvents btnBrowseBattery As Button
-    Friend WithEvents tbBattery As TextBox
     Friend WithEvents lblTitle As Label
     Friend WithEvents GroupBox4 As GroupBox
     Friend WithEvents Panel1 As Panel
@@ -2182,8 +2178,15 @@ End Sub
     Friend WithEvents lvRatioPerGear As ListView
     Friend WithEvents ColumnHeader11 As ColumnHeader
     Friend WithEvents ColumnHeader12 As ColumnHeader
-    Friend WithEvents Button1 As Button
+    Friend WithEvents btnAddEMRatio As Button
     Friend WithEvents Label29 As Label
-    Friend WithEvents Button2 As Button
+    Friend WithEvents btnRemoveEMRatio As Button
+    Friend WithEvents lvREESSPacks As ListView
+    Friend WithEvents chReessPackPack As ColumnHeader
+    Friend WithEvents chReessPackCount As ColumnHeader
+    Friend WithEvents chReessPackStringId As ColumnHeader
+    Friend WithEvents btnAddReessPack As Button
+    Friend WithEvents lblEditReessPack As Label
+    Friend WithEvents btnRemoveReessPack As Button
     '>>>>>>> VECTO_CERT/master
 End Class
diff --git a/VECTO/GUI/VehicleForm.resx b/VECTO/GUI/VehicleForm.resx
index 5e567b01ea761ca564e4363b220e171c4f43893a..21bc7df44d5386f57f7760ba29fcb84cca3113b2 100644
--- a/VECTO/GUI/VehicleForm.resx
+++ b/VECTO/GUI/VehicleForm.resx
@@ -130,24 +130,6 @@
     <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>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vAAADrwBlbxySQAAAtVJREFUOE+FkmtIk2EYhhc6zU1zyjyAlZn5Q0QS6k/EMDDSQiuzkmxM5wpEA00S
-        zTzbsozQEDUyVKjQbejUPGQSyyjUmofysFRKU/M859J5qORu77s1KX/0wPXju7/vvp4X3o/RVsHv7pDy
-        0VklwIfaCPTXCzHQEPkXn5pEUDWJNH31kRGMf4eUocvF7GAShlqjQZ6H3qZjYUICQGliVfscvc+EGmNt
-        c0hhY/kONpYMrC/cwowqiYowchcYNaKRoa7mDDyfcuFRYpdnrBsEv7S3KT8XCTkUkq/3xGOj9xrQn0Cp
-        qQrGvnJ7uJTuwK58G4VJ8GMhh25eV29Ccp0yDmvd8SZBV7UA7sW2R5wfWsO+0ApO2ewMKlibE2N11siM
-        GCt6SL7YEQtdZxxUShECq7wQ9MQLZKnTfbbcqpQJuwxLDRWsTN+EbiobuslsLBsh+eybK3j/WgBfmQeq
-        1RKcqPalAgexlYIIrNMtQAVLE1lYGs/Cd8JYJrR6SK5ovoCzjTzI1VLE9gjgVsiBYza7jJvHAhGwkpkG
-        gfZrJhZHM6D5QtBf4ed0yKSnENLEg0L3AlHKIBxq2Ik9BRy4FNrA4bFBYJlgbhCQgno4DeqhNMwPpuFb
-        TyICan3waqUF0coAHGtxpwJvuSPcJBwqYBUzwby8TUEF84OpmFOlYnYghR69XcLHUdl+RLX7I6TVc4uA
-        W8aCZZy5hhnO8KECUpzuu4Gpj8lU0FgShuIHgeAVucK/0d0k8KzgwjGXje0xZiPMS/oyGVIgxcme65jo
-        MvyBNUWhqMw/j7ryi+Dlu+KwfDcVcNNYEOfx6E2Ypq0iVKN6GYNxZRLG3iVSQXnOcRSk+EGadxK1j4Jx
-        IMsZPhXOsE+2QnPZOcPmP9MtD+d0SMPkXTVCDLdeRadciPjIg7H6V3sNXzAYtrEMjmW0udxCZFZmjLZO
-        eyX/NDkNOcG9FD9vY/yfYTB+A9kMOLKC3dXwAAAAAElFTkSuQmCC
-</value>
-  </data>
   <data name="btnBrowseElectricMotor.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
diff --git a/VECTO/GUI/VehicleForm.vb b/VECTO/GUI/VehicleForm.vb
index 800a4f30475892f273c28ae7ba8b0b10ba5f20af..17faa44e86d2b64f9a2babeaa29eaabb9763e9ba 100644
--- a/VECTO/GUI/VehicleForm.vb
+++ b/VECTO/GUI/VehicleForm.vb
@@ -45,6 +45,12 @@ Public Class VehicleForm
 		Ratio = 1
 	End Enum
 
+	private Enum REESPackTbl
+		ReessFile = 0
+		Count = 1
+		StringId = 2
+	End Enum
+
 
 	Private _axlDlog As VehicleAxleDialog
 	Private _hdVclass As VehicleClass
@@ -56,6 +62,7 @@ Public Class VehicleForm
 	Public JobDir As String = ""
 	Private _torqueLimitDlog As VehicleTorqueLimitDialog
 	private _emRatioPerGearDlog as EMGearRatioDialog
+	private _reessPackDlg as REESSPackDialog
 	Friend VehicleType As VectoSimulationJobType
 
 	'Close - Check for unsaved changes
@@ -132,6 +139,7 @@ Public Class VehicleForm
 		_axlDlog = New VehicleAxleDialog
 		_torqueLimitDlog = New VehicleTorqueLimitDialog()
 		_emRatioPerGearDlog = new EMGearRatioDialog()
+		_reessPackDlg = New REESSPAckDialog()
 
 		cbPTOType.ValueMember = "Value"
 		cbPTOType.DisplayMember = "Label"
@@ -473,9 +481,11 @@ Public Class VehicleForm
 			If(angledrive.LossMap Is Nothing, "", GetRelativePath(angledrive.LossMap.Source, basePath))
 
 		If (vehicle.VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse vehicle.VehicleType = VectoSimulationJobType.ParallelHybridVehicle) Then
-			tbBattery.Text = GetRelativePath(vehicle.Components.ElectricStorage.REESSPack.DataSource.SourceFile, basePath)
-			tbBatteryPackCnt.Text = vehicle.Components.ElectricStorage.Count.ToGUIFormat()
-			tbInitialSoC.Text = (vehicle.InitialSOC * 100).ToGUIFormat()
+		    lvREESSPacks.Items.Clear()
+		    For Each entry As IElectricStorageEngineeringInputData In vehicle.Components.ElectricStorage.ElectricStorageElements.OrderBy(function(x) x.StringId)
+		        lvREESSPacks.Items.Add(CreateREESSPackListViewItem(GetRelativePath(entry.REESSPack.DataSource.SourceFile, basePath), entry.Count, entry.StringId))
+		    Next
+		    tbInitialSoC.Text = (vehicle.InitialSOC * 100).ToGUIFormat()
 
 			Dim em As ElectricMachineEntry(Of IElectricMotorEngineeringInputData) = vehicle.Components.ElectricMachines.Entries.First()
 			tbElectricMotor.Text = GetRelativePath(em.ElectricMachine.DataSource.SourceFile, basePath)
@@ -520,6 +530,14 @@ Public Class VehicleForm
 		return retval
     End Function
 
+    Private Function CreateREESSPackListViewItem(batFile As String, count As Integer, stringid As Integer) As ListViewItem
+        dim retval as new ListViewItem
+        retVal.SubItems(0).Text = GetRelativePath(batFile, Path.GetDirectoryName(_vehFile))
+        retVal.SubItems.Add(count.ToGUIFormat())
+		retval.SubItems.Add(stringid.ToGUIFormat())
+        return retval
+    End Function
+
     Private Sub UpdateForm(vehType As VectoSimulationJobType)
 		VehicleType = vehType
 		Select Case vehType
@@ -637,8 +655,9 @@ Public Class VehicleForm
 		End If
 
 		If (VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse VehicleType = VectoSimulationJobType.BatteryElectricVehicle) Then
-			veh.BatteryFile.Init(GetPath(file), tbBattery.Text)
-			veh.NumBatteryPacks = tbBatteryPackCnt.Text.ToInt(0)
+		    For Each reess As ListViewItem In lvREESSPacks.Items
+		        veh.ReessPacks.Add(tuple.Create(reess.SubItems(REESPackTbl.ReessFile).Text, reess.SubItems(REESPackTbl.Count).Text.ToInt(), reess.SubItems(REESPackTbl.StringId).Text.ToInt()))
+		    Next
 			veh.InitialSOC = tbInitialSoC.Text.ToDouble() / 100.0
 
 			veh.ElectricMotorFile.Init(GetPath(file), tbElectricMotor.Text)
@@ -1105,11 +1124,6 @@ Public Class VehicleForm
 
 	End Sub
 
-	Private Sub btnBrowseBattery_Click(sender As Object, e As EventArgs) Handles btnBrowseBattery.Click
-		If REESSFileBrowser.OpenDialog(FileRepl(tbBattery.Text, GetPath(_vehFile))) Then
-			tbBattery.Text = GetFilenameWithoutDirectory(REESSFileBrowser.Files(0), GetPath(_vehFile))
-		End If
-	End Sub
 
 	Private Sub btnOpenElectricMotor_Click(sender As Object, e As EventArgs) Handles btnOpenElectricMotor.Click
 		Dim f As String
@@ -1142,37 +1156,6 @@ Public Class VehicleForm
 		End If
 	End Sub
 
-	Private Sub btnOpenBattery_Click(sender As Object, e As EventArgs) Handles btnOpenBattery.Click
-		Dim f As String
-		f = FileRepl(tbBattery.Text, GetPath(_vehFile))
-
-		'Thus Veh-file is returned
-		BatteryForm.JobDir = GetPath(_vehFile)
-		BatteryForm.AutoSendTo = True
-
-		If Not Trim(f) = "" Then
-			If Not File.Exists(f) Then
-				MsgBox("File not found!")
-				Exit Sub
-			End If
-		End If
-
-		If Not BatteryForm.Visible Then
-			BatteryForm.Show()
-		Else
-			If BatteryForm.WindowState = FormWindowState.Minimized Then BatteryForm.WindowState = FormWindowState.Normal
-			BatteryForm.BringToFront()
-		End If
-
-		If Not Trim(f) = "" Then
-			Try
-				BatteryForm.OpenBatteryFile(f)
-			Catch ex As Exception
-				MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Error loading Vehicle File")
-			End Try
-		End If
-	End Sub
-
 	Private Sub btnEmTorqueLimits_Click(sender As Object, e As EventArgs) Handles btnEmTorqueLimits.Click
 		If ElectricMachineMaxTorqueFileBrowser.OpenDialog(FileRepl(tbEmTorqueLimits.Text, GetPath(_vehFile))) Then _
 			tbEmTorqueLimits.Text = GetFilenameWithoutDirectory(ElectricMachineMaxTorqueFileBrowser.Files(0), GetPath(_vehFile))
@@ -1203,7 +1186,7 @@ Public Class VehicleForm
 		gbRatiosPerGear.Enabled = cbEmPos.SelectedValue.Equals(PowertrainPosition.HybridP2_5) 
 	End Sub
 
-	Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
+	Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnAddEMRatio.Click
 		_emRatioPerGearDlog.Clear()
 		If _emRatioPerGearDlog.ShowDialog() = DialogResult.OK Then
 			Dim gear As Integer = _emRatioPerGearDlog.tbGear.Text.ToInt(0)
@@ -1222,7 +1205,7 @@ Public Class VehicleForm
 		End If
 	End Sub
 
-	Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
+	Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnRemoveEMRatio.Click
 		If lvRatioPerGear.SelectedItems.Count = 0 Then
 			If lvRatioPerGear.Items.Count = 0 Then
 				Exit Sub
@@ -1251,5 +1234,43 @@ Public Class VehicleForm
     Private Sub lvRatioPerGear_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lvRatioPerGear.SelectedIndexChanged
 
     End Sub
+
+    Private Sub lvREESSPacks_DoubleClick(sender As Object, e As EventArgs) Handles lvREESSPacks.DoubleClick
+        If lvREESSPacks.SelectedItems.Count = 0 Then Exit Sub
+
+        Dim entry As ListViewItem = lvREESSPacks.SelectedItems(0)
+        _reessPackDlg.tbBattery.Text = entry.SubItems(REESPackTbl.ReessFile).Text
+        _reessPackDlg.tbBatteryPackCnt.Text = entry.SubItems(REESPackTbl.Count).Text
+        _reessPackDlg.tbStreamId.Text = entry.SubItems(REESPackTbl.StringId).Text
+        _reessPackDlg.tbBattery.Focus()
+        If (_reessPackDlg.ShowDialog() = DialogResult.OK) Then
+            entry.SubItems(REESPackTbl.ReessFile).Text = _reessPackDlg.tbBattery.Text
+            entry.SubItems(REESPackTbl.Count).Text = _reessPackDlg.tbBatteryPackCnt.Text
+            entry.SubItems(REESPackTbl.StringId).Text = _reessPackDlg.tbStreamId.Text
+        End If
+    End Sub
+
+    Private Sub btnAddReessPack_Click(sender As Object, e As EventArgs) Handles btnAddReessPack.Click
+        _reessPackDlg.Clear()
+        If _reessPackDlg.ShowDialog() = DialogResult.OK Then
+
+            lvREESSPacks.Items.Add(CreateREESSPackListViewItem(_reessPackDlg.tbBattery.Text, _reessPackDlg.tbBatteryPackCnt.Text.ToInt(0), _reessPackDlg.tbStreamId.Text.ToInt(0)))
+
+            Change()
+
+        End If
+    End Sub
+
+    Private Sub btnRemoveReessPack_Click(sender As Object, e As EventArgs) Handles btnRemoveReessPack.Click
+        If lvREESSPacks.SelectedItems.Count = 0 Then
+            If lvREESSPacks.Items.Count = 0 Then
+                Exit Sub
+            Else
+                lvREESSPacks.Items(lvREESSPacks.Items.Count - 1).Selected = True
+            End If
+        End If
+
+        lvREESSPacks.SelectedItems(0).Remove()
+    End Sub
 End Class
 
diff --git a/VECTO/Input Files/Engine.vb b/VECTO/Input Files/Engine.vb
index a1889be48b4db0e46774c0b1ef743315f8871187..c3cb756085aae22d74f6710eceeb62f3f472ab0b 100644
--- a/VECTO/Input Files/Engine.vb	
+++ b/VECTO/Input Files/Engine.vb	
@@ -702,9 +702,9 @@ Public Class DummyVehicle
 	Public Property PTOTransmissionInputData As IPTOTransmissionInputData Implements IVehicleComponentsDeclaration.PTOTransmissionInputData
 	Public Property IVehicleComponentsEngineering_AxleWheels As IAxlesEngineeringInputData Implements IVehicleComponentsEngineering.AxleWheels
 	Public Property AxleWheels As IAxlesDeclarationInputData Implements IVehicleComponentsDeclaration.AxleWheels
-	Public ReadOnly Property IVehicleComponentsEngineering_ElectricStorage As IElectricStorageEngineeringInputData Implements IVehicleComponentsEngineering.ElectricStorage
+	Public ReadOnly Property IVehicleComponentsEngineering_ElectricStorage As IElectricStorageSystemEngineeringInputData Implements IVehicleComponentsEngineering.ElectricStorage
 	Public ReadOnly Property BusAuxiliaries As IBusAuxiliariesDeclarationData Implements IVehicleComponentsDeclaration.BusAuxiliaries
-	Public ReadOnly Property ElectricStorage As IElectricStorageDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage
+	Public ReadOnly Property ElectricStorage As IElectricStorageSystemDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage
 	Public ReadOnly Property IVehicleComponentsEngineering_ElectricMachines As IElectricMachinesEngineeringInputData Implements IVehicleComponentsEngineering.ElectricMachines
 	Public ReadOnly Property ElectricMachines As IElectricMachinesDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricMachines
 End Class
diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb
index 5d67c96eac0c5e2efa7d677d9404039da90e9dd2..69701bdf91a841f78e471d65b78c1d82e3d33b07 100644
--- a/VECTO/Input Files/Gearbox.vb	
+++ b/VECTO/Input Files/Gearbox.vb	
@@ -889,7 +889,7 @@ Public Class MockEngineeringVehicle
         Implements IVehicleComponentsEngineering.PTOTransmissionInputData
 
     Public Property AxleWheels As IAxlesEngineeringInputData Implements IVehicleComponentsEngineering.AxleWheels
-    Public ReadOnly Property ElectricStorage As IElectricStorageEngineeringInputData Implements IVehicleComponentsEngineering.ElectricStorage
+    Public ReadOnly Property ElectricStorage As IElectricStorageSystemEngineeringInputData Implements IVehicleComponentsEngineering.ElectricStorage
     Public ReadOnly Property ElectricMachines As IElectricMachinesEngineeringInputData Implements IVehicleComponentsEngineering.ElectricMachines
 End Class
 
diff --git a/VECTO/Input Files/MockComponents.vb b/VECTO/Input Files/MockComponents.vb
index 19e33a2e44f548e4fe122d9abd85525ba3f0837e..b64e23b2ef2d895947bf0b01a9c9140146fa99e3 100644
--- a/VECTO/Input Files/MockComponents.vb	
+++ b/VECTO/Input Files/MockComponents.vb	
@@ -30,6 +30,6 @@ Public Class MockComponents
 
     Public Property AxleWheels As IAxlesDeclarationInputData Implements IVehicleComponentsDeclaration.AxleWheels
     Public ReadOnly Property BusAuxiliaries As IBusAuxiliariesDeclarationData Implements IVehicleComponentsDeclaration.BusAuxiliaries
-    Public ReadOnly Property ElectricStorage As IElectricStorageDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage
+    Public ReadOnly Property ElectricStorage As IElectricStorageSystemDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage
     Public ReadOnly Property ElectricMachines As IElectricMachinesDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricMachines
 End Class
\ No newline at end of file
diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index e96c5022ac11800dc0754f5aad367fadbc93f899..4bbc2859e6f8104e27f21ada8ab2bb6fe404addd 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -14,6 +14,7 @@ Imports System.Collections.Generic
 Imports System.ComponentModel.DataAnnotations
 Imports System.IO
 Imports System.Linq
+Imports System.Runtime.Remoting.Messaging
 Imports System.Xml
 Imports TUGraz.VECTO.Input_Files
 Imports TUGraz.VectoCommon.BusAuxiliaries
@@ -79,11 +80,11 @@ Public Class Vehicle
 
 	Public VehicleTankSystem As TankSystem?
 
-	Public ReadOnly BatteryFile As SubPath
 	Public ReadOnly ElectricMotorFile As SubPath
 
-	Public NumBatteryPacks As Integer
-	Public ElectricMotorPosition As PowertrainPosition
+	public ReadOnly ReessPacks As List(Of Tuple(Of String, Integer, Integer))
+
+    Public ElectricMotorPosition As PowertrainPosition
 	Public ElectricMotorCount As Integer
 	Public ElectricMotorRatio As Double
     'Public ElectricMotorMechEff As Double
@@ -105,10 +106,10 @@ Public Class Vehicle
 
 		Axles = New List(Of AxleInputData)
 		torqueLimitsList = New List(Of ITorqueLimitInputData)
-		PtoLossMap = New SubPath()
+		ReessPacks = new List(Of Tuple(Of String,Integer,Integer))
+	    PtoLossMap = New SubPath()
 		PtoCycleStandstill = New SubPath()
         PtoCycleDriving = new SubPath()
-		BatteryFile = New SubPath()
 		ElectricMotorFile = New SubPath()
 		ElectricMotorMechLossMap = new SubPath()
 
@@ -760,15 +761,15 @@ Public Class Vehicle
 		End Get
 	End Property
 
-	Public ReadOnly Property ElectricStorage As IElectricStorageEngineeringInputData Implements IVehicleComponentsEngineering.ElectricStorage
+	Public ReadOnly Property ElectricStorage As IElectricStorageSystemEngineeringInputData Implements IVehicleComponentsEngineering.ElectricStorage
 		Get
-			Return New ElectricStorageWrapper(Me)
+			Return New ElectricStorageSystemWrapper(Me)
 		End Get
 	End Property
 
 	Public ReadOnly Property IVehicleComponentsDeclaration_ElectricMachines As IElectricMachinesDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricMachines
 
-	Public ReadOnly Property IVehicleComponentsDeclaration_ElectricStorage As IElectricStorageDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage
+	Public ReadOnly Property IVehicleComponentsDeclaration_ElectricStorage As IElectricStorageSystemDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage
 	Public ReadOnly Property ElectricMachines As IElectricMachinesEngineeringInputData Implements IVehicleComponentsEngineering.ElectricMachines
 		Get
 			Return New ElectricMachineWrapper(Me)
@@ -917,33 +918,57 @@ end Property
 	Public ReadOnly Property IAxlesDeclarationInputData_XMLSource As XmlNode Implements IAxlesDeclarationInputData.XMLSource
 End Class
 
+Public Class ElectricStorageSystemWrapper
+    Implements IElectricStorageSystemEngineeringInputData
+
+    Private _vehicle As Vehicle
+
+    Public Sub New(vehicle As Vehicle)
+        _vehicle = vehicle    
+    End Sub
+
+    Public ReadOnly Property ElectricStorageElements As IList(Of IElectricStorageDeclarationInputData) Implements IElectricStorageSystemDeclarationInputData.ElectricStorageElements
+	get
+			return _vehicle.ReessPacks.Select(Function(x) new ElectricStorageWrapper(x, GetPath(_vehicle.FilePath))).Cast(of IElectricStorageDeclarationInputData) .toList()
+	End Get
+    End Property
+    Public ReadOnly Property IElectricStorageSystemEngineeringInputData_ElectricStorageElements As IList(Of IElectricStorageEngineeringInputData) Implements IElectricStorageSystemEngineeringInputData.ElectricStorageElements
+	get
+	    return _vehicle.ReessPacks.Select(Function(x) new ElectricStorageWrapper(x, GetPath(_vehicle.FilePath))).cast(of IElectricStorageEngineeringInputData).toList()
+	End Get
+    End Property
+End Class
+
 Public Class ElectricStorageWrapper
 	Implements IElectricStorageEngineeringInputData, IBatteryPackEngineeringInputData
 
-	Protected Vehicle As Vehicle
+    Public Property BatteryFile As SubPath
 
-	Public Sub New(veh As Vehicle)
-		Vehicle = veh
+    Public Sub New(veh As Tuple(Of String,Integer,Integer), filePath As String)
+		count = veh.Item2
+		StringId = veh.Item3
+        BatteryFile = New SubPath
+        BatteryFile.Init(filePath, veh.Item1)
 	End Sub
 
 
-	Public ReadOnly Property REESSPack As IREESSPackInputData Implements IElectricStorageEngineeringInputData.REESSPack
+
+    Public ReadOnly Property REESSPack As IREESSPackInputData Implements IElectricStorageEngineeringInputData.REESSPack
 		Get
 			Return Me
 		End Get
 	End Property
 
 	Public ReadOnly Property Count As Integer Implements IElectricStorageEngineeringInputData.Count
-		Get
-			Return Vehicle.NumBatteryPacks
-		End Get
-	End Property
+		
 
-	Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource
+    Public ReadOnly Property StringId As Integer Implements IElectricStorageDeclarationInputData.StringId
+
+    Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource
 		Get
 			Dim retVal As DataSource = New DataSource()
 			retVal.SourceType = DataSourceType.JSONFile
-			retVal.SourceFile = Vehicle.BatteryFile.FullPath
+			retVal.SourceFile = BatteryFile.FullPath
 			Return retVal
 		End Get
 	End Property
diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj
index faf3ae545a3c20bee5659db95439daacf88e1980..f4fe99ebc684f2d66cb50f47c6942e3c74dc47ec 100644
--- a/VECTO/VECTO.vbproj
+++ b/VECTO/VECTO.vbproj
@@ -229,6 +229,12 @@
     <Compile Include="GUI\BusAuxiliariesEngParametersForm.vb">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Include="GUI\REESSPackDialog.Designer.vb">
+      <DependentUpon>REESSPackDialog.vb</DependentUpon>
+    </Compile>
+    <Compile Include="GUI\REESSPackDialog.vb">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="GUI\HybridStrategyParamsForm.Designer.vb">
       <DependentUpon>HybridStrategyParamsForm.vb</DependentUpon>
     </Compile>
@@ -431,6 +437,9 @@
     <EmbeddedResource Include="GUI\BusAuxiliariesEngParametersForm.resx">
       <DependentUpon>BusAuxiliariesEngParametersForm.vb</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="GUI\REESSPackDialog.resx">
+      <DependentUpon>REESSPackDialog.vb</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="GUI\HybridStrategyParamsForm.resx">
       <DependentUpon>HybridStrategyParamsForm.vb</DependentUpon>
     </EmbeddedResource>
diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/ComponentsViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/ComponentsViewModel.cs
index 3fd5661df9df2f919ad69f821b36dacca1df5d2c..87d56480bdc97dd5606d9392a9888f88e28cae00 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/ComponentsViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/Components/ComponentsViewModel.cs
@@ -143,7 +143,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components
 			set => throw new NotImplementedException();
 		}
 
-		public IElectricStorageDeclarationInputData ElectricStorage => throw new NotImplementedException();
+		public IElectricStorageSystemDeclarationInputData ElectricStorage => throw new NotImplementedException();
 
 		public IElectricMachinesDeclarationInputData ElectricMachines => throw new NotImplementedException();
 
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs
index 6acdf1436719dc0f725bed27144a42c983a09446..7cf379e0a0e613e99dfe177628aa15defb0c31ba 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs
@@ -762,7 +762,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		public IAxlesDeclarationInputData AxleWheels => throw new NotImplementedException();
 
 
-		public IElectricStorageDeclarationInputData ElectricStorage => throw new NotImplementedException();
+		public IElectricStorageSystemDeclarationInputData ElectricStorage => throw new NotImplementedException();
 
 		public IElectricMachinesDeclarationInputData ElectricMachines => throw new NotImplementedException();
 
diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
index 304adf995ee575b75e94da795247fcc5904d2dc9..3c485c752f789e8e704a82246fd4bd72137779f8 100644
--- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
@@ -226,8 +226,8 @@ namespace TUGraz.VectoCommon.InputData
 		IAxlesDeclarationInputData AxleWheels { get; }
 
 		IBusAuxiliariesDeclarationData BusAuxiliaries { get; }
-
-		IElectricStorageDeclarationInputData ElectricStorage { get; }
+		
+		IElectricStorageSystemDeclarationInputData ElectricStorage { get; }
 
 		IElectricMachinesDeclarationInputData ElectricMachines { get; }
 	}
@@ -761,11 +761,20 @@ namespace TUGraz.VectoCommon.InputData
 		public TableData MechanicalTransmissionLossMap { get; set; }
 	}
 
+	
+
+	public interface IElectricStorageSystemDeclarationInputData 
+	{
+		IList<IElectricStorageDeclarationInputData> ElectricStorageElements { get; }
+	}
+
 	public interface IElectricStorageDeclarationInputData
 	{
 		IREESSPackInputData REESSPack { get; }
 
 		int Count { get; }
+
+		int StringId { get; }
 	}
 
 	public enum REESSType
@@ -777,6 +786,7 @@ namespace TUGraz.VectoCommon.InputData
 	public interface IREESSPackInputData : IComponentInputData
 	{
 		REESSType StorageType { get; }
+
 	}
 
 	public interface IBatteryPackDeclarationInputData : IREESSPackInputData
diff --git a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
index c9f01a8b1cf9e3d933fcf8ce795a0fc264fbdf41..8bead1e34001aca34fcbae46b53fed09fe4df9d8 100644
--- a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
@@ -161,7 +161,7 @@ namespace TUGraz.VectoCommon.InputData
 
 		//IBusAuxiliariesEngineeringData BusAuxiliaries { get; }
 
-		IElectricStorageEngineeringInputData ElectricStorage { get; }
+		IElectricStorageSystemEngineeringInputData ElectricStorage { get; }
 
 		IElectricMachinesEngineeringInputData ElectricMachines { get; }
 	}
@@ -485,6 +485,11 @@ namespace TUGraz.VectoCommon.InputData
 
 	}
 
+	public interface IElectricStorageSystemEngineeringInputData  : IElectricStorageSystemDeclarationInputData
+	{
+		new IList<IElectricStorageEngineeringInputData> ElectricStorageElements { get; }
+	}
+
 	public interface IBatteryPackEngineeringInputData : IBatteryPackDeclarationInputData
 	{
 	}
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONBattery.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONBattery.cs
index 4b1703719e38f3fcf8f989f0e7ed8782a513fea0..41fa5ce3b234e2a74c548c10422bf7dbbf1bcbb8 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONBattery.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONBattery.cs
@@ -102,5 +102,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 
 		public REESSType StorageType => Body["REESSType"] == null ? REESSType.Battery : Body.GetEx<string>("REESSType").ParseEnum<REESSType>();
+		//public int StreamNumber { get; }
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
index 7ef86cb640e3889dbfd72a22719e52084bc7a3f2..b81a8918294544b9e8c92466fb9aa0b310a680d5 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
@@ -201,11 +201,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public IBusAuxiliariesDeclarationData BusAuxiliaries => null;
 
-		public IElectricStorageEngineeringInputData ElectricStorage =>
-			new JSONElectricStorageEngineeringInputData {
-				REESSPack = Battery,
-				Count = 1
-			};
+		public IElectricStorageSystemEngineeringInputData ElectricStorage =>
+			new JSONElectricStorageSystemEngineeringInputData(new List<IElectricStorageEngineeringInputData>() {
+				new JSONElectricStorageEngineeringInputData {
+					REESSPack = Battery,
+					Count = 1,
+					StringId = 0,
+				}
+			});
 
 		public IElectricMachinesEngineeringInputData ElectricMachines { get
 		{
@@ -218,7 +221,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			});
 		} }
 
-		IElectricStorageDeclarationInputData IVehicleComponentsDeclaration.ElectricStorage => ElectricStorage;
+		IElectricStorageSystemDeclarationInputData IVehicleComponentsDeclaration.ElectricStorage => 
+			new JSONElectricStorageSystemEngineeringInputData(new List<IElectricStorageEngineeringInputData>() {
+				new JSONElectricStorageEngineeringInputData {
+					REESSPack = Battery,
+					Count = 1,
+					StringId = 0,
+				}
+			});
 
 		IElectricMachinesDeclarationInputData IVehicleComponentsDeclaration.ElectricMachines => ElectricMachines;
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs
index 592b5b345969242f525accddfd16a8365d490540..c9bb727f7934148ccae6d662147c7868ac0e95b0 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs
@@ -615,6 +615,27 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		
 		public int Count { get; internal set; }
+		public int StringId { get; internal set; }
 	}
 
+	public class JSONElectricStorageSystemEngineeringInputData : IElectricStorageSystemEngineeringInputData
+	{
+		private IList<IElectricStorageEngineeringInputData> _electricStorageElements;
+
+
+		public JSONElectricStorageSystemEngineeringInputData(IList<IElectricStorageEngineeringInputData> entries)
+		{
+			_electricStorageElements = entries;
+		}
+
+		public IList<IElectricStorageEngineeringInputData> ElectricStorageElements => _electricStorageElements;
+
+		#region Implementation of IElectricStorageSystemDeclarationInputData
+
+		IList<IElectricStorageDeclarationInputData> IElectricStorageSystemDeclarationInputData.ElectricStorageElements => _electricStorageElements.Cast<IElectricStorageDeclarationInputData>().ToList();
+
+		#endregion
+	}
+
+	
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
index 1469c5ea0b797ab07df2326946dec0c69452ad8e..e99c766fe29ccc20d7e20d632c27b3ee0fd45cd0 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
@@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 {
 	public class JSONVehicleDataV10_HEV_BEV : JSONVehicleDataV9
 	{
-		private JSONElectricStorageEngineeringInputData _batteries;
+		private JSONElectricStorageSystemEngineeringInputData _batteries;
 		private JSONElectricMotors _electricMotors;
 
 		public JSONVehicleDataV10_HEV_BEV(JObject data, string fileName, IJSONVehicleComponents job, bool tolerateMissing = false) :
@@ -69,7 +69,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			return _electricMotors ?? (_electricMotors = ReadMotors());
 		}
 
-		protected override IElectricStorageEngineeringInputData GetElectricStorage()
+		protected override IElectricStorageSystemEngineeringInputData GetElectricStorage()
 		{
 			return _batteries ?? (_batteries = ReadBatteries());
 		}
@@ -122,12 +122,27 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 		}
 		
 
-		protected virtual JSONElectricStorageEngineeringInputData ReadBatteries()
+		protected virtual JSONElectricStorageSystemEngineeringInputData ReadBatteries()
 		{
-			return new JSONElectricStorageEngineeringInputData() {
-				Count = Body["Battery"].GetEx<int>("NumPacks"),
-				REESSPack = JSONInputDataFactory.ReadREESSData(Path.Combine(BasePath, Body["Battery"].GetEx<string>("BatteryFile")), false)
-			};
+			var entries = new List<IElectricStorageEngineeringInputData>();
+			if (Body["Batteries"] != null) {
+				foreach (var entry in Body["Batteries"]) {
+					entries.Add(new JSONElectricStorageEngineeringInputData() {
+						Count = entry.GetEx<int>("NumPacks"),
+						StringId = entry.GetEx<int>("StreamId"),
+						REESSPack = JSONInputDataFactory.ReadREESSData(
+							Path.Combine(BasePath, entry.GetEx<string>("BatteryFile")), false)
+					});
+				}
+			} else {
+				entries.Add(new JSONElectricStorageEngineeringInputData() {
+					Count = Body["Battery"].GetEx<int>("NumPacks"),
+					StringId = 0,
+					REESSPack = JSONInputDataFactory.ReadREESSData(Path.Combine(BasePath, Body["Battery"].GetEx<string>("BatteryFile")), false)
+				});
+			}
+
+			return new JSONElectricStorageSystemEngineeringInputData(entries);
 		}
 
 		public override TableData ElectricMotorTorqueLimits =>
@@ -381,9 +396,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		IAxlesEngineeringInputData IVehicleComponentsEngineering.AxleWheels => this;
 
-		IElectricStorageEngineeringInputData IVehicleComponentsEngineering.ElectricStorage => GetElectricStorage();
+		IElectricStorageSystemEngineeringInputData IVehicleComponentsEngineering.ElectricStorage => GetElectricStorage();
 
-		protected virtual IElectricStorageEngineeringInputData GetElectricStorage()
+		protected virtual IElectricStorageSystemEngineeringInputData GetElectricStorage()
 		{
 			return null;
 		}
@@ -397,7 +412,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual IBusAuxiliariesDeclarationData BusAuxiliaries => null;
 
-		IElectricStorageDeclarationInputData IVehicleComponentsDeclaration.ElectricStorage => GetElectricStorage();
+		IElectricStorageSystemDeclarationInputData IVehicleComponentsDeclaration.ElectricStorage => GetElectricStorage();
 
 		IElectricMachinesDeclarationInputData IVehicleComponentsDeclaration.ElectricMachines => GetElectricMachines();
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs
index 3e651e48dbb667f38d36cc06ff709344e81b514a..f22381ccb63ee31edd3db59215627562f8dad042 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs
@@ -93,7 +93,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public virtual IAxlesDeclarationInputData AxleWheels => _axleWheels ?? (_axleWheels = ComponentReader.AxlesDeclarationInputData);
 
 		public virtual IBusAuxiliariesDeclarationData BusAuxiliaries => null;
-		public virtual IElectricStorageDeclarationInputData ElectricStorage => null;
+		public virtual IElectricStorageSystemDeclarationInputData ElectricStorage => null;
 		public virtual IElectricMachinesDeclarationInputData ElectricMachines => null;
 
 		#endregion
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
index 2aa24cd7ccf787f928c97ba2e8c4eeeb8196dda4..cea6b6469d69043bef63ad7cdb295b9bbb45c04d 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
@@ -703,7 +703,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		}
 
 
-		public IElectricStorageDeclarationInputData ElectricStorage => null;
+		public IElectricStorageSystemDeclarationInputData ElectricStorage => null;
 
 		public IElectricMachinesDeclarationInputData ElectricMachines => null;
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleComponentsDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleComponentsDataProvider.cs
index 9f1de3fc1d4d04e85d8e8a9f20c1008b3f86ec7a..382c34b66996136bcfaae75b8e546dcefd723eaa 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleComponentsDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleComponentsDataProvider.cs
@@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider
 
 		public IAxlesEngineeringInputData AxleWheels => _axleWheels ?? (_axleWheels = ComponentReader.AxlesEngineeringInputData);
 
-		public virtual IElectricStorageEngineeringInputData ElectricStorage => null;
+		public virtual IElectricStorageSystemEngineeringInputData ElectricStorage => null;
 		public virtual IElectricMachinesEngineeringInputData ElectricMachines => null;
 
 		#endregion
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
index e17f347199f088fdf63eda203ba30f2aa8448014..2eba5fc0ba3ea5eec5f05bcdead7067bafe1b68e 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
@@ -694,38 +694,57 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			return retVal;
 		}
 
-		public BatteryData CreateBatteryData(IElectricStorageEngineeringInputData batteryInputData, double initialSOC)
+		public BatterySystemData CreateBatteryData(IElectricStorageSystemEngineeringInputData batteryInputData, double initialSOC)
 		{
-			if (batteryInputData == null || batteryInputData.REESSPack.StorageType != REESSType.Battery) {
+			if (batteryInputData == null) {
 				return null;
 			}
 
-			var bat = batteryInputData.REESSPack as IBatteryPackEngineeringInputData;
+			var bat = batteryInputData.ElectricStorageElements.Where(x => x.REESSPack.StorageType == REESSType.Battery).ToArray();
+
+			var retVal = new BatterySystemData();
+			foreach (var entry in bat) {
+                var b = entry.REESSPack as IBatteryPackDeclarationInputData;
+                if (b == null) {
+                    continue;
+                }
+
+                for (var i = 0; i < entry.Count; i++) {
+					retVal.Batteries.Add(Tuple.Create(entry.StringId, new BatteryData() {
+						MinSOC = b.MinSOC,
+						MaxSOC = b.MaxSOC,
+						MaxCurrent = BatteryMaxCurrentReader.Create(b.MaxCurrentMap, entry.Count),
+						Capacity = b.Capacity,
+						InternalResistance =
+							BatteryInternalResistanceReader.Create(b.InternalResistanceCurve, 1),
+						SOCMap = BatterySOCReader.Create(b.VoltageCurve),
+					}));
+				}
+			}
 
-			return new BatteryData() {
-				MinSOC = bat.MinSOC,
-				MaxSOC = bat.MaxSOC,
-				MaxCurrent = BatteryMaxCurrentReader.Create(bat.MaxCurrentMap, batteryInputData.Count),
-				Capacity = batteryInputData.Count * bat.Capacity,
-				InternalResistance = BatteryInternalResistanceReader.Create(bat.InternalResistanceCurve, batteryInputData.Count),
-				SOCMap = BatterySOCReader.Create(bat.VoltageCurve),
-				InitialSoC = initialSOC
-			};
+			retVal.InitialSoC = initialSOC;
+			return retVal;
 		}
 
-		public SuperCapData CreateSuperCapData(IElectricStorageEngineeringInputData reessInputData, double initialSOC)
+		public SuperCapData CreateSuperCapData(IElectricStorageSystemEngineeringInputData reessInputData, double initialSOC)
 		{
-			if (reessInputData == null || reessInputData.REESSPack.StorageType != REESSType.SuperCap)
+			if (reessInputData == null)
 			{
 				return null;
 			}
 
-			var superCap = reessInputData.REESSPack as ISuperCapEngineeringInputData;
+			var superCaps = reessInputData.ElectricStorageElements.Where(x => x.REESSPack.StorageType == REESSType.SuperCap).ToArray();
+
+			var superCap = superCaps.FirstOrDefault()?.REESSPack as ISuperCapDeclarationInputData;
+
+			if (superCap == null) {
+				return null;
+			}
 
 			return new SuperCapData()
 			{
-				Capacity = reessInputData.Count * superCap.Capacity,
-				InternalResistance = superCap.InternalResistance / reessInputData.Count,
+				Capacity = superCaps.First().Count * superCap.Capacity,
+				InternalResistance = superCap.InternalResistance / superCaps.First().Count,
 				MinVoltage = superCap.MinVoltage,
 				MaxVoltage = superCap.MaxVoltage,
 				MaxCurrentCharge = superCap.MaxCurrentCharge,
diff --git a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
index 5fb3957afde3f7de69342f8ecac93a867df7a643..97196d0176432e95f7fa761bf06de24b2fce5991 100644
--- a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
@@ -129,7 +129,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 
 		public List<Tuple<PowertrainPosition, ElectricMotorData>> ElectricMachinesData { get; internal set; }
 
-		public BatteryData BatteryData { get; internal set; }
+		public BatterySystemData BatteryData { get; internal set; }
 
 		public SuperCapData SuperCapData { get; internal set; }
 
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 2d345091b64cb893ea30f4dbcd2fd1cf2435d73b..ef134d2fa9851424a1d4273a6388dbc652336ed9 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -382,10 +382,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			var es = new ElectricSystem(container);
 
 			if (data.BatteryData != null) {
-				if (data.BatteryData.InitialSoC < data.BatteryData.MinSOC) {
+				if (data.BatteryData.InitialSoC < data.BatteryData.Batteries.Min(x => x.Item2.MinSOC)) {
 					throw new VectoException("Battery: Initial SoC has to be higher than min SoC");
 				}
-				var battery = new Battery(container, data.BatteryData);
+				var battery = new BatterySystem(container, data.BatteryData);
 				battery.Initialize(data.BatteryData.InitialSoC);
 				es.Connect(battery);
 			}
@@ -505,7 +505,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			var es = new ElectricSystem(container);
 
 			if (data.BatteryData != null) {
-				var battery = new Battery(container, data.BatteryData);
+				var battery = new BatterySystem(container, data.BatteryData);
 				battery.Initialize(data.BatteryData.InitialSoC);
 				es.Connect(battery);
 			}
@@ -654,7 +654,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 
 			var es = new ElectricSystem(container);
 			if (data.BatteryData != null) {
-				var battery = new Battery(container, data.BatteryData);
+				var battery = new BatterySystem(container, data.BatteryData);
 				battery.Initialize(data.BatteryData.InitialSoC);
 				es.Connect(battery);
 			}
@@ -768,7 +768,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 
 			var es = new ElectricSystem(container);
 			if (data.BatteryData != null) {
-				var battery = new Battery(container, data.BatteryData);
+				var battery = new BatterySystem(container, data.BatteryData);
 				battery.Initialize(data.BatteryData.InitialSoC);
 				es.Connect(battery);
 			}	
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Battery/BatteryData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Battery/BatteryData.cs
index e673b69d8febfefccfa217e327a3dfd8ba661027..52ba4b9dbf2213fc9b2fcba8d1b0c987b657f813 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Battery/BatteryData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Battery/BatteryData.cs
@@ -1,10 +1,32 @@
-using System.ComponentModel.DataAnnotations;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
 using System.Linq;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Utils;
 
 namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Battery {
 
+	public class BatterySystemData
+	{
+		public BatterySystemData()
+		{
+			Batteries = new List<Tuple<int, BatteryData>>();
+		}
+
+		public List<Tuple<int, BatteryData>> Batteries { get; internal set; }
+
+		public double InitialSoC { get; internal set; }
+		public AmpereSecond Capacity
+		{
+			get
+			{
+				return Batteries.Select(x => x.Item1).Distinct().OrderBy(x => x).Aggregate(0.SI<AmpereSecond>(),
+					(current, s) => current + Batteries.Where(x => x.Item1 == s).Min(x => x.Item2.Capacity));
+			}
+		}
+	}
+
 	public class BatteryData
 	{
 		[ValidateObject]
@@ -23,9 +45,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Battery {
 
 		public MaxCurrentMap MaxCurrent { get; internal set; }
 
-		public double InitialSoC { get; internal set; }
-
-		//public double TargetSoC { get; internal set; }
 	}
 
 	public class SuperCapData
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
index 56c6427664645008da69dcf4e3747c01e9422e58..9c178e89ba6f0d0d2bf7723c0de443f67d821b88 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
@@ -61,7 +61,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 
 		public NewtonMeter LookupDragTorque(Volt voltage, PerSecond avgSpeed)
 		{
-			var tuple = VoltageLevels.GetSection(x => voltage > x.Voltage);
+			var tuple = GetSection(voltage);
 
 			return VectoMath.Interpolate(tuple.Item1.Voltage, tuple.Item2.Voltage,
 				tuple.Item1.DragCurve.Lookup(avgSpeed),
@@ -73,7 +73,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 			if (avgSpeed.IsGreaterOrEqual(MaxSpeed)) {
 				return 0.SI<NewtonMeter>();
 			}
-			var tuple = VoltageLevels.GetSection(x => voltage > x.Voltage);
+			var tuple = GetSection(voltage);
 			var r1 = tuple.Item1.EfficiencyMap.LookupTorque(electricPower, avgSpeed, maxEmTorque);
 			var r2 = tuple.Item2.EfficiencyMap.LookupTorque(electricPower, avgSpeed, maxEmTorque);
 
@@ -102,7 +102,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 
 		public EfficiencyMap.EfficiencyResult LookupElectricPower(Volt voltage, PerSecond avgSpeed, NewtonMeter torque, bool allowExtrapolation = false)
 		{
-			var tuple = VoltageLevels.GetSection(x => voltage > x.Voltage);
+			var tuple = GetSection(voltage);
 
 			var r1 = tuple.Item1.EfficiencyMap.LookupElectricPower(avgSpeed, torque, allowExtrapolation);
 			var r2 = tuple.Item2.EfficiencyMap.LookupElectricPower(avgSpeed, torque, allowExtrapolation);
@@ -128,7 +128,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 
 		public NewtonMeter FullGenerationTorque(Volt voltage, PerSecond avgSpeed)
 		{
-			var tuple = VoltageLevels.GetSection(x => voltage > x.Voltage);
+			var tuple = GetSection(voltage);
 
 			return VectoMath.Interpolate(tuple.Item1.Voltage, tuple.Item2.Voltage,
 				tuple.Item1.FullLoadCurve.FullGenerationTorque(avgSpeed),
@@ -137,12 +137,24 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 
 		public NewtonMeter FullLoadDriveTorque(Volt voltage, PerSecond avgSpeed)
 		{
-			var tuple = VoltageLevels.GetSection(x => voltage > x.Voltage);
+			var tuple = GetSection(voltage);
 
 			return VectoMath.Interpolate(tuple.Item1.Voltage, tuple.Item2.Voltage,
 				tuple.Item1.FullLoadCurve.FullLoadDriveTorque(avgSpeed),
 				tuple.Item2.FullLoadCurve.FullLoadDriveTorque(avgSpeed), voltage);
 		}
+
+		protected Tuple<ElectricMotorVoltageLevelData, ElectricMotorVoltageLevelData> GetSection(Volt voltage)
+		{
+			if (voltage < VoltageLevels.First().Voltage) {
+				return Tuple.Create(VoltageLevels.First(), VoltageLevels.First());
+			}
+
+			if (voltage > VoltageLevels.Last().Voltage) {
+				return Tuple.Create(VoltageLevels.Last(), VoltageLevels.Last());
+			}
+			return VoltageLevels.GetSection(x => voltage > x.Voltage);
+		}
 	}
 
 	public class ElectricMotorVoltageLevelData
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Battery.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Battery.cs
index 89effcf3c48116088aabb54eba241bc335e05328..7d01943df6670e6774b2ef8f1e3ba72f727c1845 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Battery.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Battery.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
@@ -17,9 +18,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 	{
 		protected readonly BatteryData ModelData;
 
-		public Battery(IVehicleContainer container, BatteryData modelData) : base(container)
+		public Battery(IVehicleContainer container, BatteryData modelData, int idx = -1) : base(container)
 		{
 			ModelData = modelData;
+			if (idx >= 0) {
+				BatteryId = idx;
+			}
 		}
 
 		#region Implementation of IBatteryProvider
@@ -142,20 +146,22 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		protected override void DoWriteModalResults(Second absTime, Second dt, IModalDataContainer container)
 		{
 			var cellVoltage = ModelData.SOCMap.Lookup(PreviousState.StateOfCharge);
-			container[ModalResultField.U0_reess] = cellVoltage;
-			container[ModalResultField.U_reess_terminal] =
+			container[ModalResultField.U0_reess, BatteryId] = cellVoltage;
+			container[ModalResultField.U_reess_terminal, BatteryId] =
 				cellVoltage +
 				CurrentState.TotalCurrent *
 				ModelData.InternalResistance.Lookup(PreviousState.StateOfCharge); // adding both terms because pos. current charges the battery!
-			container[ModalResultField.I_reess] = CurrentState.TotalCurrent;
-			container[ModalResultField.REESSStateOfCharge] = CurrentState.StateOfCharge.SI();
-			container[ModalResultField.P_reess_terminal] = CurrentState.PowerDemand;
-			container[ModalResultField.P_reess_int] = cellVoltage * CurrentState.TotalCurrent;
-			container[ModalResultField.P_reess_loss] = CurrentState.BatteryLoss;
-			container[ModalResultField.P_reess_charge_max] = CurrentState.MaxChargePower;
-			container[ModalResultField.P_reess_discharge_max] = CurrentState.MaxDischargePower;
+			container[ModalResultField.I_reess, BatteryId] = CurrentState.TotalCurrent;
+			container[ModalResultField.REESSStateOfCharge, BatteryId] = CurrentState.StateOfCharge.SI();
+			container[ModalResultField.P_reess_terminal, BatteryId] = CurrentState.PowerDemand;
+			container[ModalResultField.P_reess_int, BatteryId] = cellVoltage * CurrentState.TotalCurrent;
+			container[ModalResultField.P_reess_loss, BatteryId] = CurrentState.BatteryLoss;
+			container[ModalResultField.P_reess_charge_max, BatteryId] = CurrentState.MaxChargePower;
+			container[ModalResultField.P_reess_discharge_max, BatteryId] = CurrentState.MaxDischargePower;
 		}
 
+		public int? BatteryId { get;  }
+
 		protected override void DoCommitSimulationStep(Second time, Second simulationInterval)
 		{
 			AdvanceState();
@@ -175,21 +181,25 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public Watt MaxChargePower(Second dt)
 		{
-			var maxChargeCurrent = VectoMath.Min((ModelData.MaxSOC - PreviousState.StateOfCharge) * ModelData.Capacity / dt,
-				ModelData.MaxCurrent.LookupMaxChargeCurrent(PreviousState.StateOfCharge));
+			//var maxChargeCurrent = VectoMath.Min((ModelData.MaxSOC - PreviousState.StateOfCharge) * ModelData.Capacity / dt,
+			//	ModelData.MaxCurrent.LookupMaxChargeCurrent(PreviousState.StateOfCharge));
+			var maxChargeCurrent = MaxChargeCurrent(dt);
 			return InternalVoltage * maxChargeCurrent +
-					maxChargeCurrent * ModelData.InternalResistance.Lookup(PreviousState.StateOfCharge) * maxChargeCurrent;
+					maxChargeCurrent * InternalResistance * maxChargeCurrent;
 		}
 
+		
+
 		public Watt MaxDischargePower(Second dt)
 		{
-			var maxDischargeCurrent = VectoMath.Max(
-				((ModelData.MinSOC - PreviousState.StateOfCharge) * ModelData.Capacity / dt).LimitTo(ModelData.MaxCurrent.LookupMaxDischargeCurrent(PreviousState.StateOfCharge),
-					0.SI<Ampere>()), ModelData.MaxCurrent.LookupMaxDischargeCurrent(PreviousState.StateOfCharge));
+			//var maxDischargeCurrent = VectoMath.Max(
+			//	((ModelData.MinSOC - PreviousState.StateOfCharge) * ModelData.Capacity / dt).LimitTo(ModelData.MaxCurrent.LookupMaxDischargeCurrent(PreviousState.StateOfCharge),
+			//		0.SI<Ampere>()), ModelData.MaxCurrent.LookupMaxDischargeCurrent(PreviousState.StateOfCharge));
+			var maxDischargeCurrent = MaxDischargeCurrent(dt);
 			var cellVoltage = InternalVoltage;
 			var maxDischargePower = InternalVoltage * maxDischargeCurrent +
-									maxDischargeCurrent * ModelData.InternalResistance.Lookup(PreviousState.StateOfCharge) * maxDischargeCurrent;
-			var maxPower = -cellVoltage / (4 * ModelData.InternalResistance.Lookup(PreviousState.StateOfCharge)) * cellVoltage;
+									maxDischargeCurrent * InternalResistance * maxDischargeCurrent;
+			var maxPower = -cellVoltage / (4 * InternalResistance) * cellVoltage;
 			return VectoMath.Max(maxDischargePower, maxPower);
 		}
 
@@ -197,6 +207,22 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public double MaxSoC => ModelData.MaxSOC;
 
+		public Ohm InternalResistance => ModelData.InternalResistance.Lookup(PreviousState.StateOfCharge);
+		public AmpereSecond Capacity => ModelData.Capacity;
+
+		public Ampere MaxChargeCurrent(Second dt)
+		{
+			return VectoMath.Min(
+				(ModelData.MaxSOC - PreviousState.StateOfCharge) * ModelData.Capacity / dt,
+				ModelData.MaxCurrent.LookupMaxChargeCurrent(PreviousState.StateOfCharge));
+		}
+
+		public Ampere MaxDischargeCurrent(Second dt)
+		{
+			return VectoMath.Max(
+				((ModelData.MinSOC - PreviousState.StateOfCharge) * ModelData.Capacity / dt).LimitTo(ModelData.MaxCurrent.LookupMaxDischargeCurrent(PreviousState.StateOfCharge),
+					0.SI<Ampere>()), ModelData.MaxCurrent.LookupMaxDischargeCurrent(PreviousState.StateOfCharge));
+		}
 		//public Ampere MaxCurrent
 		//{
 		//	get
@@ -222,5 +248,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			public Watt BatteryLoss;
 		}
 
+
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BatterySystem.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BatterySystem.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0d75b8ebf543e1e5d0960a801648da83651a7bb2
--- /dev/null
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BatterySystem.cs
@@ -0,0 +1,337 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Configuration;
+using TUGraz.VectoCore.Models.Connector.Ports.Impl;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Battery;
+using TUGraz.VectoCore.OutputData;
+
+namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
+{
+	public class BatterySystem : StatefulVectoSimulationComponent<BatterySystem.State>, IElectricEnergyStorage, IElectricEnergyStoragePort
+	{
+		public class BatteryString
+		{
+			protected readonly List<Battery> _batteries;
+			
+			private AmpereSecond _capacity;
+
+			public BatteryString()
+            {
+				_batteries = new List<Battery>();
+            }
+
+			public IReadOnlyList<Battery> Batteries => _batteries;
+
+			public void AddBattery(Battery bat)
+			{
+				_batteries.Add(bat);
+				// Todo: update some properties?
+				_capacity = null;
+			}
+
+			public Volt OpenCircuitVoltage => _batteries.Sum(x => x.InternalVoltage);
+
+			public Ohm InternalResistance => _batteries.Sum(x => x.InternalResistance);
+
+			public AmpereSecond Capacity => _capacity ?? (_capacity = _batteries.Min(x => x.Capacity));
+
+			public double SoC => _batteries.Min(x => x.StateOfCharge * x.Capacity) / Capacity;
+			public WattSecond StoredEnergy => _batteries.Min(x => x.StateOfCharge * x.Capacity) * OpenCircuitVoltage;
+
+			public Watt MaxDischargePower(Second dt)
+			{
+				var maxDischargeCurrent = MaxDischargeCurrent(dt);
+					var maxDischargePower = OpenCircuitVoltage * maxDischargeCurrent +
+											maxDischargeCurrent * InternalResistance * maxDischargeCurrent;
+					var maxPower = -OpenCircuitVoltage / (4 * InternalResistance) * OpenCircuitVoltage;
+					return VectoMath.Max(maxDischargePower, maxPower);
+				
+			}
+
+			public Ampere MaxChargeCurrent(Second dt)
+			{
+				return _batteries.Min(x => x.MaxChargeCurrent(dt));
+			}
+
+			public Ampere MaxDischargeCurrent(Second dt)
+			{
+				return _batteries.Max(x => x.MaxDischargeCurrent(dt));
+			}
+
+			public Watt MaxChargePower(Second dt)
+			{
+				var maxCurrent = MaxChargeCurrent(dt);
+				return OpenCircuitVoltage * maxCurrent +
+						maxCurrent * InternalResistance * maxCurrent;
+			}
+
+			public IList<IRESSResponse> Request(Second absTime, Second dt, Watt powerDemand, bool dryRun)
+			{
+				var current = 0.SI<Ampere>();
+				if (!powerDemand.IsEqual(0)) {
+					var solutions = VectoMath.QuadraticEquationSolver(InternalResistance.Value(), OpenCircuitVoltage.Value(),
+						-powerDemand.Value());
+					current = SelectSolution(solutions, powerDemand.Value(), dt);
+				}
+
+				if (!dryRun) {
+					Current = current;
+				}
+
+				return _batteries.Select(x => {
+					var demand = (x.InternalVoltage + x.InternalResistance * current) * current;
+					return x.Request(absTime, dt, demand, dryRun);
+				}).ToList();
+			}
+
+			public Ampere Current { get; set; }
+
+			private Ampere SelectSolution(double[] solutions, double sign, Second dt)
+			{
+				var maxCurrent = Math.Sign(sign) < 0
+					? MaxDischargeCurrent(dt)
+					: MaxChargeCurrent(dt);
+				return solutions.Where(x => Math.Sign(sign) == Math.Sign(x) && Math.Abs(x).IsSmallerOrEqual(Math.Abs(maxCurrent.Value()), 1e-3)).Min().SI<Ampere>();
+			}
+		}
+
+		protected internal readonly Dictionary<int, BatteryString> Batteries = new Dictionary<int, BatteryString>();
+		
+		private AmpereSecond _totalCapacity;
+
+		public BatterySystem(IVehicleContainer dataBus, BatterySystemData batterySystemData) : base(dataBus)
+		{
+			var idx = 0;
+			foreach (var entry in batterySystemData.Batteries) {
+				var bat = new Battery(null, entry.Item2, idx++);
+				if (!Batteries.ContainsKey(entry.Item1)) {
+					Batteries[entry.Item1] = new BatteryString();
+				}
+				Batteries[entry.Item1].AddBattery(bat);
+			}
+		}
+
+		#region Overrides of VectoSimulationComponent
+
+		public override void CommitSimulationStep(Second time, Second simulationInterval, IModalDataContainer container)
+		{
+			base.CommitSimulationStep(time, simulationInterval, container);
+			foreach (var battery in Batteries) {
+				foreach (var b in battery.Value.Batteries) {
+					b.CommitSimulationStep(time, simulationInterval, container);
+				}
+			}
+			// write battery system average SoC after all battery components - then the SoC property changes from current to
+			// previous state and thus the average matches the individual batteries
+			if (container != null) {
+				container[ModalResultField.REESSStateOfCharge] = StateOfCharge.SI();
+			}
+		}
+
+		protected override void DoWriteModalResults(Second time, Second simulationInterval, IModalDataContainer container)
+		{
+			var cellVoltage = InternalVoltage;
+			container[ModalResultField.U0_reess] = cellVoltage;
+			container[ModalResultField.U_reess_terminal] =
+				cellVoltage +
+				CurrentState.TotalCurrent *
+				InternalResistance; // adding both terms because pos. current charges the battery!
+			container[ModalResultField.I_reess] = CurrentState.TotalCurrent;
+			//container[ModalResultField.REESSStateOfCharge] = CurrentState.StateOfCharge.SI();
+			container[ModalResultField.P_reess_terminal] = CurrentState.PowerDemand;
+			container[ModalResultField.P_reess_int] = cellVoltage * CurrentState.TotalCurrent;
+			container[ModalResultField.P_reess_loss] = CurrentState.BatteryLoss;
+			container[ModalResultField.P_reess_charge_max] = CurrentState.MaxChargePower;
+			container[ModalResultField.P_reess_discharge_max] = CurrentState.MaxDischargePower;
+		}
+
+		public Ohm InternalResistance => (1 / Batteries.Sum(bs => 1 / bs.Value.InternalResistance.Value())).SI<Ohm>();
+		
+		protected override void DoCommitSimulationStep(Second time, Second simulationInterval)
+		{
+			
+		}
+
+
+		#endregion
+
+		#region Implementation of IBatteryProvider
+
+		public IElectricEnergyStoragePort MainBatteryPort => this;
+
+		#endregion
+
+		#region Implementation of IRESSInfo
+
+		public Volt InternalVoltage => Batteries.Values.Select(x => x.OpenCircuitVoltage).Average();
+
+		public double StateOfCharge => Batteries.Values.Sum(bs => bs.SoC * bs.Capacity) / TotalCapacity;
+
+		public AmpereSecond TotalCapacity =>
+			_totalCapacity ?? (_totalCapacity = Batteries.Values.Sum(bs => bs.Capacity));
+
+		public WattSecond StoredEnergy => Batteries.Values.Sum(bs => bs.StoredEnergy);
+		
+		public Watt MaxChargePower(Second dt)
+		{
+			return Batteries.Values.Sum(bs => bs.MaxChargePower(dt));
+
+		}
+
+		public Watt MaxDischargePower(Second dt)
+		{
+			return Batteries.Values.Sum(bs => bs.MaxDischargePower(dt));
+		}
+
+		public double MinSoC { get; }
+		public double MaxSoC { get; }
+
+		#endregion
+
+		#region Implementation of IElectricEnergyStoragePort
+
+		public void Initialize(double initialSoC)
+		{
+			foreach (var b in Batteries.Values.SelectMany(bs => bs.Batteries)) {
+				b.Initialize(initialSoC);
+			}
+		}
+
+		public IRESSResponse Request(Second absTime, Second dt, Watt powerDemand, bool dryRun)
+		{
+			var maxChargePower = MaxChargePower(dt);
+			var maxDischargePower = MaxDischargePower(dt);
+
+			if (powerDemand.IsGreater(maxChargePower, Constants.SimulationSettings.InterpolateSearchTolerance) ||
+				powerDemand.IsSmaller(maxDischargePower, Constants.SimulationSettings.InterpolateSearchTolerance)) {
+				return PowerDemandExceeded(absTime, dt, powerDemand, maxDischargePower, maxChargePower, dryRun);
+			}
+
+			
+			var powerDemands = new Dictionary<int, Watt>();
+			var limitBB = new Dictionary<int, Watt>();
+			var distributedPower = 0.SI<Watt>();
+			do {
+				distributedPower = 0.SI<Watt>();
+				var remainingPower = powerDemand - (limitBB.Sum(x => x.Value) ?? 0.SI<Watt>());
+				powerDemands.Clear();
+				var totalCapacity = (Batteries.Where(x => !limitBB.ContainsKey(x.Key)).Sum(x => x.Value.Capacity) ?? 0.SI<AmpereSecond>());
+				var averageSoC = (Batteries.Where(x => !limitBB.ContainsKey(x.Key)).Sum(x => x.Value.SoC * x.Value.Capacity) / totalCapacity).Value();
+				foreach (var bs in Batteries) {
+					if (limitBB.ContainsKey(bs.Key)) {
+						continue;
+					}
+					var delta = 1 - Math.Sign(remainingPower.Value()) * (bs.Value.SoC - averageSoC) / averageSoC;
+					var power = bs.Value.Capacity / totalCapacity * delta * remainingPower;
+					if (!power.IsBetween(bs.Value.MaxDischargePower(dt), bs.Value.MaxChargePower(dt))) {
+						limitBB[bs.Key] = power.LimitTo(bs.Value.MaxDischargePower(dt), bs.Value.MaxChargePower(dt));
+					} else {
+						powerDemands[bs.Key] = power;
+						distributedPower += power;
+					}
+				}
+
+				if (limitBB.Count > 0) {
+					Log.Debug($"BB ${string.Join(", ", limitBB.Keys)} are at max - recalculating power distribution");
+				}
+			} while (!(distributedPower + (limitBB.Sum(x => x.Value) ?? 0.SI<Watt>())) .IsEqual(powerDemand, 1e-3.SI<Watt>()));
+
+			powerDemands = powerDemands.Concat(limitBB).ToDictionary(x => x.Key, x=> x.Value);
+
+			var responses = new Dictionary<int, IList<IRESSResponse>>();
+			foreach (var entry in powerDemands) {
+				responses[entry.Key] = Batteries[entry.Key].Request(absTime, dt, entry.Value, dryRun);
+			}
+
+			if (dryRun) {
+				return new RESSDryRunResponse(this) {
+					AbsTime = absTime,
+					SimulationInterval = dt,
+					MaxChargePower = maxChargePower,
+					MaxDischargePower = maxDischargePower,
+					PowerDemand = powerDemand,
+					LossPower = responses.Sum(x => x.Value.Sum(b => b.LossPower)),
+					//StateOfCharge = (currentCharge + current * dt) / ModelData.Capacity
+				};
+			}
+
+			var current = Batteries.Values.Sum(x => x.Current);
+			
+			CurrentState.StateOfCharge = StateOfCharge;
+			CurrentState.PowerDemand = powerDemand;
+			CurrentState.MaxChargePower = maxChargePower;
+			CurrentState.MaxDischargePower = maxDischargePower;
+			CurrentState.TotalCurrent = current;
+			CurrentState.BatteryLoss = current * InternalResistance * current;
+
+			if (responses.All(bb => bb.Value.All(b => b is RESSResponseSuccess))) {
+				return new RESSResponseSuccess(this) {
+					AbsTime = absTime,
+					SimulationInterval = dt,
+					MaxChargePower = maxChargePower,
+					MaxDischargePower = maxDischargePower,
+					PowerDemand = powerDemand,
+					LossPower = responses.Sum(x => x.Value.Sum(b => b.LossPower)),
+					//StateOfCharge = (currentCharge + current * dt) / ModelData.Capacity
+				};
+			}
+			throw new NotImplementedException("batterypack no success");
+		}
+
+
+		private IRESSResponse PowerDemandExceeded(Second absTime, Second dt, Watt powerDemand, Watt maxDischargePower,
+			Watt maxChargePower, bool dryRun)
+		{
+			var maxPower = powerDemand < 0 ? maxDischargePower : maxChargePower;
+
+			var maxChargeCurrent = Batteries.Values.Sum(bs => bs.MaxChargeCurrent(dt));
+			var maxDischargeCurrent = Batteries.Values.Sum(bs => bs.MaxDischargeCurrent(dt));
+			var current = powerDemand < 0 ? maxDischargeCurrent : maxChargeCurrent;
+			var internalResistance = (1 / Batteries.Values.Sum(bs => 1 / bs.InternalResistance.Value())).SI<Ohm>();
+
+			var batteryLoss = current * internalResistance * current;
+
+			AbstractRESSResponse response;
+			if (dryRun) {
+				response = new RESSDryRunResponse(this);
+			} else {
+				if (powerDemand > maxPower) {
+					response = new RESSOverloadResponse(this);
+				} else {
+					response = new RESSUnderloadResponse(this);
+				}
+			}
+			response.AbsTime = absTime;
+			response.SimulationInterval = dt;
+			response.MaxChargePower = maxChargePower;
+			response.MaxDischargePower = maxDischargePower;
+			response.PowerDemand = powerDemand;
+			response.LossPower = batteryLoss;
+
+			return response;
+		}
+
+		#endregion
+
+		public class State
+		{
+			public double StateOfCharge;
+
+			public Second SimulationInterval;
+
+			public Watt PowerDemand;
+
+			public Ampere TotalCurrent;
+			public Watt MaxChargePower;
+			public Watt MaxDischargePower;
+			public Watt BatteryLoss;
+		}
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
index 26e22fad12d1430648f6ceeaeb57092ba37b9cf5..8e80bc6cca386628b43598c4d9f09fdd6d4d56c2 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
@@ -57,6 +57,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 			TestPowertrain.HybridController.Initialize(Controller.PreviousState.OutTorque, Controller.PreviousState.OutAngularVelocity);
 			TestPowertrain.Clutch.Initialize(DataBus.ClutchInfo.ClutchLosses);
 			TestPowertrain.Battery?.Initialize(DataBus.BatteryInfo.StateOfCharge);
+			if (TestPowertrain.BatterySystem != null) {
+				var batSystem = DataBus.BatteryInfo as BatterySystem;
+				foreach (var bsKey in batSystem.Batteries.Keys) {
+					for (var i = 0; i < batSystem.Batteries[bsKey].Batteries.Count; i++) {
+						TestPowertrain.BatterySystem.Batteries[bsKey].Batteries[i]
+							.Initialize(batSystem.Batteries[bsKey].Batteries[i].StateOfCharge);
+					}
+				}
+			}
 			TestPowertrain.SuperCap?.Initialize(DataBus.BatteryInfo.StateOfCharge);
 
 			TestPowertrain.Brakes.BrakePower = DataBus.Brakes.BrakePower;
@@ -557,16 +566,17 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 				shiftStrategyParameters.AllowedGearRangeFC = shiftStrategyParameters.AllowedGearRangeFC.LimitTo(1, 2);
 			}
 
-			var auxEnergyReserve = ModelData.ElectricAuxDemand * StrategyParameters.AuxReserveTime;
-			BatteryDischargeEnergyThreshold = 0.SI<WattSecond>();
-			if (auxEnergyReserve > 0) {
-				var minSoc = Math.Max(ModelData.BatteryData?.MinSOC ?? ModelData.SuperCapData.MinVoltage / ModelData.SuperCapData.MaxVoltage,
-					StrategyParameters.MinSoC);
-				BatteryDischargeEnergyThreshold =
-					ModelData.BatteryData.Capacity * minSoc * ModelData.BatteryData.SOCMap.Lookup(minSoc) +
-					auxEnergyReserve;
-			}
-			AllowEmergencyShift = false;
+            // TODO: MQ 20210712 how to handle with batterysystem
+            //var auxEnergyReserve = ModelData.ElectricAuxDemand * StrategyParameters.AuxReserveTime;
+            BatteryDischargeEnergyThreshold = 0.SI<WattSecond>();
+            //if (auxEnergyReserve > 0) {
+            //	var minSoc = Math.Max(ModelData.BatteryData?.MinSOC ?? ModelData.SuperCapData.MinVoltage / ModelData.SuperCapData.MaxVoltage,
+            //		StrategyParameters.MinSoC);
+            //	BatteryDischargeEnergyThreshold =
+            //		ModelData.BatteryData.Capacity * minSoc * ModelData.BatteryData.SOCMap.Lookup(minSoc) +
+            //		auxEnergyReserve;
+            //}
+            AllowEmergencyShift = false;
 		}
 
 		public virtual IHybridController Controller { protected get; set; }
@@ -2230,6 +2240,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 				retVal.MechanicalAssistPower[em.Item1] = null;
 			}
 
+			// TODO: MQ 20210712 how to handle with batterysystem
+			//var auxEnergyReserve = ModelData.ElectricAuxDemand * StrategyParameters.AuxReserveTime;
+			//if (auxEnergyReserve > 0) {
+			//	var minSoc = Math.Max(ModelData.BatteryData?.MinSOC ?? ModelData.SuperCapData.MinVoltage / ModelData.SuperCapData.MaxVoltage,
+			//		StrategyParameters.MinSoC);
+			//	BatteryDischargeEnergyThreshold =
+			//		ModelData.BatteryData.Capacity * minSoc * ModelData.BatteryData.SOCMap.Lookup(minSoc) +
+			//		auxEnergyReserve;
+			//}
+
 			PreviousState.AngularVelocity = outAngularVelocity;
 			PreviousState.GearboxEngaged = true;
 			PreviousState.GearshiftTriggerTstmp = -double.MaxValue.SI<Second>();
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/TestPowertrain.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/TestPowertrain.cs
index 1d1126314a53aee8b65f1a756a0b50b55c8bd8b3..17ad336cd017cd6c8f2f9f64f08d4155fd505716 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/TestPowertrain.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/TestPowertrain.cs
@@ -19,6 +19,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies {
 		
 		public SimpleHybridController HybridController;
 		public Battery Battery;
+		public BatterySystem BatterySystem;
 		public SuperCap SuperCap;
 		public Clutch Clutch;
 		public IBrakes Brakes;
@@ -36,6 +37,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies {
 			
 			HybridController = Container.HybridController as SimpleHybridController;
 			Battery = Container.BatteryInfo as Battery;
+			BatterySystem = container.BatteryInfo as BatterySystem;
+			
 			SuperCap = Container.BatteryInfo as SuperCap;
 			Clutch = Container.ClutchInfo as Clutch;
 			CombustionEngine = Container.EngineInfo as StopStartCombustionEngine;
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/VectoSimulationComponent.cs b/VectoCore/VectoCore/Models/SimulationComponent/VectoSimulationComponent.cs
index e80e108aaa48741a5dc570488c03ec2a2f2267d7..6034fcc178a0acbfad280038e40008ae0210f9ea 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/VectoSimulationComponent.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/VectoSimulationComponent.cs
@@ -59,7 +59,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent
 				dataBus.AddComponent(this);
 		}
 
-		public void CommitSimulationStep(Second time, Second simulationInterval, IModalDataContainer container)
+		public virtual void CommitSimulationStep(Second time, Second simulationInterval, IModalDataContainer container)
 		{
 			if (container != null) {
 				DoWriteModalResults(time, simulationInterval, container);
diff --git a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
index 5aafdf197f86c6067bfe16fee68c1ae1ac21f389..0eb4d17f6f631712255f56ce05b34e6616627227 100644
--- a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
+++ b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs
@@ -520,7 +520,7 @@ public class JSONFileWriter : IOutputFileWriter
 		body.Add("InitialSoC", vehicle.InitialSOC * 100);
 		body.Add("PowertrainConfiguration", "ParallelHybrid");
 		body.Add("ElectricMotors", electricMotorsOut);
-		body.Add("Battery", battery);
+		body.Add("Batteries", battery);
 
 		WriteFile(header, body, filename);
 	}
@@ -551,7 +551,7 @@ public class JSONFileWriter : IOutputFileWriter
 		body.Add("InitialSoC", vehicle.InitialSOC * 100);
 		body.Add("PowertrainConfiguration", "BatteryElectric");
 		body.Add("ElectricMotors", electricMotorsOut);
-		body.Add("Battery", battery);
+		body.Add("Batteries", battery);
 
 		//body.Add("IdlingSpeed", vehicle.EngineIdleSpeed.AsRPM);
 		//body.Add("Retarder", retarderOut);
@@ -567,14 +567,19 @@ public class JSONFileWriter : IOutputFileWriter
 		WriteFile(header, body, filename);
 	}
 
-	private Dictionary<string, object> GetBattery(IVehicleEngineeringInputData vehicle, string basePath)
+	private Dictionary<string, object>[] GetBattery(IVehicleEngineeringInputData vehicle, string basePath)
 	{
-		var retVal = new Dictionary<string, object>()
-		{
-			{"NumPacks", vehicle.Components.ElectricStorage.Count},
-			{"BatteryFile", GetRelativePath(vehicle.Components.ElectricStorage.REESSPack.DataSource.SourceFile, basePath)}
+
+		var retVal = new List<Dictionary<string, object>>();
+		foreach (var entry in vehicle.Components.ElectricStorage.ElectricStorageElements) {
+
+			 retVal.Add(new Dictionary<string, object>() {
+				{ "NumPacks", entry.Count }, 
+				{ "BatteryFile", GetRelativePath(entry.REESSPack.DataSource.SourceFile, basePath) },
+				{ "StreamId", entry.StringId}
+			});
 		};
-		return retVal;
+		return retVal.ToArray();
 	}
 
 	private Array GetElectricMotors(IVehicleEngineeringInputData vehicle, string basePath)
diff --git a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
index 78de9f4350c6d6124971679b730f8b90ff04bb44..e6c5818d404b537e0f017917ec5b5feec15238f0 100644
--- a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
@@ -63,6 +63,8 @@ namespace TUGraz.VectoCore.OutputData
 
 		object this[ModalResultField key, PowertrainPosition pos] { get; set; }
 
+		object this[ModalResultField key, int? pos] { get; set; }
+
 		/// <summary>
 		/// Indexer for auxiliary fields of the DataWriter.
 		/// </summary>
diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
index 43c458c508f3f0fb7d0178d0d65bdf2b125997d8..0fa117b265497b9b15f8e9b5e4319ec796591d02 100644
--- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
@@ -93,6 +93,21 @@ namespace TUGraz.VectoCore.OutputData
 			ModalResultField.EM_Off_,
 		};
 
+		private readonly ModalResultField[] _batterySignals = new[] {
+			ModalResultField.U0_reess,
+			ModalResultField.U_reess_terminal,
+			ModalResultField.I_reess,
+			ModalResultField.REESSStateOfCharge,
+			ModalResultField.P_reess_terminal,
+			ModalResultField.P_reess_int,
+			ModalResultField.P_reess_loss,
+			ModalResultField.P_reess_charge_max,
+			ModalResultField.P_reess_discharge_max
+		};
+
+		protected Dictionary<int, Dictionary<ModalResultField, DataColumn>> BatteryColumns =
+			new Dictionary<int, Dictionary<ModalResultField, DataColumn>>();
+
 		public static readonly IList<ModalResultField> FuelConsumptionSignals = new[] {
 			ModalResultField.FCMap, ModalResultField.FCNCVc, ModalResultField.FCWHTCc, // ModalResultField.FCAAUX,
 			ModalResultField.FCICEStopStart,  ModalResultField.FCFinal
@@ -109,6 +124,7 @@ namespace TUGraz.VectoCore.OutputData
 
 		protected VectoRunData _runData;
 		private ICorrectedModalData _correctedModalData;
+		
 		public IModalDataPostProcessor PostProcessingCorrection { set; protected get; }
 
 
@@ -615,6 +631,11 @@ namespace TUGraz.VectoCore.OutputData
 			strCols = strCols.Concat(_additionalColumns);
 			strCols = strCols.Concat(new[] { ModalResultField.ICEOn }.Select(x => x.GetName()));
 			//dataColumns.Add(ModalResultField.altitude);
+
+			foreach (var batKey in BatteryColumns.Keys) {
+				strCols = strCols.Concat(BatteryColumns[batKey].Keys.Where(x => _batterySignals.Contains(x))
+					.Select(x => $"{x.GetName()}_{batKey}"));
+			}
 //#endif
 			var fileSuffix = RunSuffix;
 			if (WriteModalResults) {
@@ -869,6 +890,40 @@ namespace TUGraz.VectoCore.OutputData
 			set => CurrentRow[string.Format(key.GetCaption(), pos.GetName())] = value;
 		}
 
+		public object this[ModalResultField key, int? idx] {
+			get {
+				if (!_batterySignals.Contains(key)) {
+					throw new VectoException("ModalResult with index is only supported for REESS fields");
+				}
+
+				return idx.HasValue ? CurrentRow[$"{key.GetCaption()}_{idx.Value}"] : CurrentRow[key.GetName()];
+			}
+			set
+			{
+				if (idx == null) {
+					CurrentRow[key.GetName()] = value;
+				} else {
+					if (!_batterySignals.Contains(key)) {
+						throw new VectoException("ModalResult with index is only supported for REESS fields");
+					}
+					if (!BatteryColumns.ContainsKey(idx.Value)) {
+						BatteryColumns[idx.Value] = new Dictionary<ModalResultField, DataColumn>();
+					}
+
+					var entry = BatteryColumns[idx.Value];
+					if (!entry.ContainsKey(key)) {
+						var col = Data.Columns.Add($"{key.GetName()}_{idx.Value}", typeof(SI));
+						col.ExtendedProperties[ModalResults.ExtendedPropertyNames.Decimals] = key.GetAttribute().Decimals;
+						col.ExtendedProperties[ModalResults.ExtendedPropertyNames.OutputFactor] = key.GetAttribute().OutputFactor;
+						col.ExtendedProperties[ModalResults.ExtendedPropertyNames.ShowUnit] = key.GetAttribute().ShowUnit;
+						entry[key] = col;
+					}
+
+					CurrentRow[entry[key]] = value;
+				}
+			}
+		}
+
 		public object this[string auxId]
 		{
 			get => CurrentRow[Auxiliaries[auxId]];
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index dcaca9ee12393ca50aed32d71e7b6bd424e2507a..ec72baab2cb4291565438bdda9f654a01dfb5ed4 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -284,6 +284,7 @@
     <Compile Include="InputData\FileIO\XML\XMLInputDataNinjectModule.cs" />
     <Compile Include="InputData\Reader\ComponentData\BatteryInternalResistanceReader.cs" />
     <Compile Include="InputData\Reader\ComponentData\BatteryMaxCurrentReader.cs" />
+    <Compile Include="Models\SimulationComponent\Impl\BatterySystem.cs" />
     <Compile Include="Models\SimulationComponent\Impl\PTODriveAuxiliary.cs" />
     <Compile Include="Models\SimulationComponent\Impl\RoadSweeperAuxiliary.cs" />
     <Compile Include="InputData\Reader\ComponentData\ElectricMotorMapReader.cs" />
diff --git a/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs
index 48e4e1fdebad6adb5364581f5ef0f9f34ff9bd6e..47d5286c5f133309e0c9ce38f5495657ec7f9a0e 100644
--- a/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs
+++ b/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs
@@ -210,12 +210,12 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			Assert.NotNull(engineering);
 			Assert.AreEqual(0.8, engineering.JobInputData.Vehicle.InitialSOC);
 
-			var bat = engineering.JobInputData.Vehicle.Components.ElectricStorage.REESSPack as IBatteryPackEngineeringInputData;
+			var bat = engineering.JobInputData.Vehicle.Components.ElectricStorage.ElectricStorageElements.First().REESSPack as IBatteryPackEngineeringInputData;
 			var ri = BatteryInternalResistanceReader.Create(bat.InternalResistanceCurve, 1);
 			var imax = BatteryMaxCurrentReader.Create(bat.MaxCurrentMap, 1);
 			
 			Assert.NotNull(bat);
-			Assert.AreEqual(2, engineering.JobInputData.Vehicle.Components.ElectricStorage.Count);
+			Assert.AreEqual(2, engineering.JobInputData.Vehicle.Components.ElectricStorage.ElectricStorageElements.First().Count);
 			Assert.AreEqual("50", bat.MaxCurrentMap.Rows[1][BatteryMaxCurrentReader.Fields.StateOfCharge]);
 			Assert.AreEqual("375", bat.MaxCurrentMap.Rows[1][BatteryMaxCurrentReader.Fields.MaxDischargeCurrent]);
 			Assert.AreEqual("375", bat.MaxCurrentMap.Rows[1][BatteryMaxCurrentReader.Fields.MaxDischargeCurrent]);
diff --git a/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs b/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs
index 7b5662db24142577f4b24522333e5aa65867cb60..48f05dd1521e1bb4a46fd43ab8ae54bb9e92a2dd 100644
--- a/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs
@@ -688,7 +688,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 			
 
 			var es = new ElectricSystem(container);
-			var battery = new Battery(container, batteryData);
+			var battery = new BatterySystem(container, batteryData);
 			battery.Initialize(initialBatCharge);
 
 			var ctl = new BatteryElectricMotorController(container, es);
diff --git a/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs b/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs
index 6c5a0982414a57295c6b8389a9e3db22413e7235..e462b54c99d4f2170b0ed1108941c0200f8bbbce 100644
--- a/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs
@@ -552,6 +552,10 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 
 		public const string Group5TestJob = @"TestData\Hybrids\GenericVehicle_Group5_P2\P2 Group 5.vecto";
 
+		public const string Group5TestJob_BatterySystem = @"TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\P2 Group 5.vecto";
+
+		public const string Group5TestJob_BatterySystem2 = @"TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\P2 Group 5_2.vecto";
+
 		[
 		TestCase(Group5TestJob, 0, TestName = "P2 Hybrid Group 5 DriveCycle LongHaul"),
 		TestCase(Group5TestJob, 1, TestName = "P2 Hybrid Group 5 DriveCycle Coach"),  
@@ -567,6 +571,33 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 		public void P2HybridGroup5DriveCycle(string jobFile, int cycleIdx)
 		{ RunHybridJob(jobFile, cycleIdx); }
 
+		[
+			TestCase(Group5TestJob_BatterySystem, 0, TestName = "P2 Hybrid Group 5 BatterySystem DriveCycle LongHaul"),
+			TestCase(Group5TestJob_BatterySystem, 1, TestName = "P2 Hybrid Group 5 BatterySystem DriveCycle Coach"),
+			TestCase(Group5TestJob_BatterySystem, 2, TestName = "P2 Hybrid Group 5 BatterySystem DriveCycle Construction"),
+			TestCase(Group5TestJob_BatterySystem, 3, TestName = "P2 Hybrid Group 5 BatterySystem DriveCycle HeavyUrban"),
+			TestCase(Group5TestJob_BatterySystem, 4, TestName = "P2 Hybrid Group 5 BatterySystem DriveCycle Interurban"),
+			TestCase(Group5TestJob_BatterySystem, 5, TestName = "P2 Hybrid Group 5 BatterySystem DriveCycle MunicipalUtility"),
+			TestCase(Group5TestJob_BatterySystem, 6, TestName = "P2 Hybrid Group 5 BatterySystem DriveCycle RegionalDelivery"),
+			TestCase(Group5TestJob_BatterySystem, 7, TestName = "P2 Hybrid Group 5 BatterySystem DriveCycle Suburban"),
+			TestCase(Group5TestJob_BatterySystem, 8, TestName = "P2 Hybrid Group 5 BatterySystem DriveCycle Urban"),
+			TestCase(Group5TestJob_BatterySystem, 9, TestName = "P2 Hybrid Group 5 BatterySystem DriveCycle UrbanDelivery"),
+
+			TestCase(Group5TestJob_BatterySystem2, 0, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle LongHaul"),
+			TestCase(Group5TestJob_BatterySystem2, 1, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle Coach"),
+			TestCase(Group5TestJob_BatterySystem2, 2, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle Construction"),
+			TestCase(Group5TestJob_BatterySystem2, 3, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle HeavyUrban"),
+			TestCase(Group5TestJob_BatterySystem2, 4, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle Interurban"),
+			TestCase(Group5TestJob_BatterySystem2, 5, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle MunicipalUtility"),
+			TestCase(Group5TestJob_BatterySystem2, 6, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle RegionalDelivery"),
+			TestCase(Group5TestJob_BatterySystem2, 7, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle Suburban"),
+			TestCase(Group5TestJob_BatterySystem2, 8, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle Urban"),
+			TestCase(Group5TestJob_BatterySystem2, 9, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle UrbanDelivery"),
+
+		]
+		public void P2HybridGroup5DriveCycle_BatterySystem(string jobFile, int cycleIdx)
+		{ RunHybridJob(jobFile, cycleIdx); }
+
 
 		public const string Group5TestJob325kW = @"TestData\Hybrids\GenericVehicle_Group5_P2\P2 Group 5_325kW.vecto";
 
@@ -602,6 +633,8 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 		{ RunHybridJob(jobFile, cycleIdx); }
 
 
+
+
 		public const string Group5_80kWh_TestJob = @"TestData\Hybrids\Hyb_P2_Group5\Hyb_P2_Group5_80kWh.vecto";
 
 		[
@@ -1458,7 +1491,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 				? (IHybridControlStrategy) new HybridStrategyAT(runData, container)
 				: new HybridStrategy(runData, container);
 			var es = new ElectricSystem(container);
-			var battery = new Battery(container, batteryData);
+			var battery = new BatterySystem(container, batteryData);
 			battery.Initialize(initialBatCharge);
 
 			var clutch = gearboxType.AutomaticTransmission() ? null :  new SwitchableClutch(container, runData.EngineData);
diff --git a/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs b/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs
index cd395c0ccd67c36d7264e2f548d2c3da56ec2729..5f1214d614bfb02f30d3f3e5fd877d59327d5943 100644
--- a/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs
+++ b/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs
@@ -892,17 +892,23 @@ namespace TUGraz.VectoCore.Tests.Models.EngineeringMode
 			if (reessSoC.HasValue) {
 				// hybrid powertrain
 				var packCount = 2;
-				runData.BatteryData = new BatteryData() {
-					Capacity = REESS_Capacity.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
-					MinSOC = REESS_MinSoC,
-					MaxSOC = REESS_MaxSoC,
-					SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()),
-					InternalResistance = BatteryInternalResistanceReader.Create("SoC, Ri\n0,0.02\n100,0.02".ToStream(), packCount),
-					MaxCurrent = BatteryMaxCurrentReader.Create("SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream(), packCount),
-					InitialSoC = reessSoC.Value
+				runData.BatteryData = new BatterySystemData() {
+					Batteries = new List<Tuple<int, BatteryData>>() {
+						Tuple.Create(0, new BatteryData() {
+							Capacity = REESS_Capacity.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							MinSOC = REESS_MinSoC,
+							MaxSOC = REESS_MaxSoC,
+							SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()),
+							InternalResistance =
+								BatteryInternalResistanceReader.Create("SoC, Ri\n0,0.02\n100,0.02".ToStream(),
+									packCount),
+							MaxCurrent = BatteryMaxCurrentReader.Create(
+								"SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream(), packCount),
+						})
+					}
 				};
 				var es = new ElectricSystem(container);
-				var battery = new Battery(container, runData.BatteryData);
+				var battery = new BatterySystem(container, runData.BatteryData);
 				battery.Initialize(runData.BatteryData.InitialSoC);
 				container.BatteryInfo = battery;
 				es.Connect(battery);
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/BatterySystemTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/BatterySystemTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f76e893e27b2605a47f2889cc1853896a52d28e3
--- /dev/null
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/BatterySystemTest.cs
@@ -0,0 +1,372 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using NUnit.Framework;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.JSON;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
+using TUGraz.VectoCore.Models.Connector.Ports.Impl;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Impl;
+using TUGraz.VectoCore.Tests.Utils;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
+{
+	[TestFixture]
+	public class BatterySystemTest
+	{
+		public const string componentFile = @"TestData\Hybrids\Battery\GenericBattery.vbat";
+
+		[OneTimeSetUp]
+		public void RunBeforeAnyTests()
+		{
+			Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
+		}
+
+		[TestCase(0.5, 1, 7000, new[] { 0.50020169, 0.50020169, 0.50020169 }),
+		TestCase(0.35, 1, 14000, new[] { 0.350404181979, 0.350404181979, 0.350404181979 }),
+		TestCase(0.75, 1, -14500, new[] { 0.7495793463, 0.7495793463, 0.7495793463 })
+
+		]
+		public void TestBatterySystemRequest_2Serial(double initialSoC, double simInterval, double powerDemand, double[] expectedSoC)
+		{
+			var inputData = JSONInputDataFactory.ReadREESSData(componentFile, false);
+			Assert.NotNull(inputData);
+
+			var dao = new EngineeringDataAdapter();
+			var tmp = new MockBatteryInputData() {
+				_electricStorageElements = new List<IElectricStorageDeclarationInputData>() {
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = inputData,
+						StringId = 0,
+						Count = 2
+					}
+				}
+			};
+			var batteryData = dao.CreateBatteryData(tmp, 0.8);
+
+			var container = new MockVehicleContainer();
+			var bat = new BatterySystem(container, batteryData);
+			var modData = new MockModalDataContainer();
+			bat.Initialize(initialSoC);
+
+			var absTime = 0.SI<Second>();
+			var dt = simInterval.SI<Second>();
+			var response = bat.Request(absTime, dt, powerDemand.SI<Watt>(), false);
+			Assert.IsInstanceOf<RESSResponseSuccess>(response);
+			bat.CommitSimulationStep(absTime, dt, modData);
+
+			var socs = bat.Batteries.SelectMany(x => x.Value.Batteries.Select(y => y.StateOfCharge)).ToArray();
+			for (var i = 0; i < socs.Length; i++) {
+				Assert.AreEqual(expectedSoC[i], socs[i], 1e-9, $"Bat_{i} SoC");
+			}
+
+			Assert.AreEqual(expectedSoC.Last(), bat.StateOfCharge, 1e-9);
+		}
+
+		[TestCase(0.5, 1, 7000, new[] { 0.50020169, 0.50020169, 0.50020169 }),
+		TestCase(0.35, 1, 14000, new[] { 0.350404181979, 0.350404181979, 0.350404181979 }),
+		TestCase(0.75, 1, -14500, new[] { 0.7495793463, 0.7495793463, 0.7495793463 })
+
+		]
+		public void TestBatterySystemRequest_2Parallel(double initialSoC, double simInterval, double powerDemand, double[] expectedSoC)
+		{
+			var inputData = JSONInputDataFactory.ReadREESSData(componentFile, false);
+			Assert.NotNull(inputData);
+
+			var dao = new EngineeringDataAdapter();
+			var tmp = new MockBatteryInputData() {
+				_electricStorageElements = new List<IElectricStorageDeclarationInputData>() {
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = inputData,
+						StringId = 0,
+						Count = 1
+					},
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = inputData,
+						StringId = 1,
+						Count = 1
+					}
+				}
+			};
+			var batteryData = dao.CreateBatteryData(tmp, 0.8);
+
+			var container = new MockVehicleContainer();
+			var bat = new BatterySystem(container, batteryData);
+			var modData = new MockModalDataContainer();
+			bat.Initialize(initialSoC);
+
+			var absTime = 0.SI<Second>();
+			var dt = simInterval.SI<Second>();
+			var response = bat.Request(absTime, dt, powerDemand.SI<Watt>(), false);
+			Assert.IsInstanceOf<RESSResponseSuccess>(response);
+			bat.CommitSimulationStep(absTime, dt, modData);
+
+			var socs = bat.Batteries.SelectMany(x => x.Value.Batteries.Select(y => y.StateOfCharge)).ToArray();
+			for (var i = 0; i < socs.Length; i++) {
+				Assert.AreEqual(expectedSoC[i], socs[i], 1e-9, $"Bat_{i} SoC");
+			}
+
+			Assert.AreEqual(expectedSoC.Last(), bat.StateOfCharge, 1e-9);
+		}
+
+		[TestCase(0.5, 1, 60000, new[] {10.0, 20, 30}, new[] { 0.500693147221155, 0.500692716960012, 0.500693147221155, 0.5006930038 }),
+        TestCase(0.35, 1, 14000, new[] { 2.33333333, 4.666666666, 7 }, new[] { 0.350161966207795, 0.350161942625547, 0.350161966207795, 0.3501619583470 }),
+        TestCase(0.75, 1, -14500, new[] { -2.4166666666, -4.833333333, -7.25 },  new[] { 0.749832099811648, 0.749832074409512, 0.749832099811648, 0.74983209134426 })
+		]
+		public void TestBatterySystemRequest_3Strings_1_Balanced(double initialSoC, double simInterval, double powerDemand, double[] expectedPowerDemand, double[] expectedSoC)
+		{
+			var inputData = JSONInputDataFactory.ReadREESSData(componentFile, false);
+			Assert.NotNull(inputData);
+
+			var dao = new EngineeringDataAdapter();
+			var tmp = new MockBatteryInputData() {
+				_electricStorageElements = new List<IElectricStorageDeclarationInputData>() {
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = new MockREESSInputData(10.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							400.SI<Volt>(), 500.SI<Ampere>(), 0.03.SI<Ohm>()),
+						StringId = 0,
+						Count = 1
+					},
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = new MockREESSInputData(20.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							400.SI<Volt>(), 500.SI<Ampere>(), 0.02.SI<Ohm>()),
+						StringId = 1,
+						Count = 1
+					},
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = new MockREESSInputData(30.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							400.SI<Volt>(), 500.SI<Ampere>(), 0.01.SI<Ohm>()),
+						StringId = 2,
+						Count = 1
+					}
+
+				}
+			};
+			var batteryData = dao.CreateBatteryData(tmp, 0.8);
+
+			var container = new MockVehicleContainer();
+			var bat = new BatterySystem(container, batteryData);
+			var modData = new MockModalDataContainer();
+			bat.Initialize(initialSoC);
+
+			var absTime = 0.SI<Second>();
+			var dt = simInterval.SI<Second>();
+			var response = bat.Request(absTime, dt, powerDemand.SI<Watt>(), false);
+			Assert.IsInstanceOf<RESSResponseSuccess>(response);
+			bat.CommitSimulationStep(absTime, dt, modData);
+
+			for (var i = 0; i < 3; i++) {
+				Assert.AreEqual(expectedPowerDemand[i] * 1e3, ((SI)modData[ModalResultField.P_reess_terminal, i]).Value(), 1e-3);
+			}
+
+			var socs = bat.Batteries.SelectMany(x => x.Value.Batteries.Select(y => y.StateOfCharge)).ToArray();
+			Console.WriteLine(string.Join(", ", socs));
+			for (var i = 0; i < socs.Length; i++) {
+				Assert.AreEqual(expectedSoC[i], socs[i], 1e-9, $"Bat_{i} SoC");
+			}
+
+			Assert.AreEqual(expectedSoC.Last(), bat.StateOfCharge, 1e-9);
+		}
+
+		[
+			TestCase(new[] {0.48, 0.52, 0.5}, 1, 60000, new[] { 10.463576, 19.337748, 30.198675 }, new[] { 0.480725217195313, 0.520669834354267, 0.500697728984787, 0.5040263454 }),
+			TestCase(new[] { 0.48, 0.52, 0.5 }, 1, -60000, new[] { -9.536424, -20.662252, -29.801325 }, new[] { 0.479336559932017, 0.519280698083512, 0.499308864822235, 0.502637425094291 }),
+			TestCase(new[] { 0.48, 0.52, 0.5 }, 10, 60000, new[] { 10.463576, 19.337748, 30.198675 }, new[] { 0.487252171953127, 0.526698343542669, 0.506977289847874, 0.510263454763681 }),
+			TestCase(new[] { 0.48, 0.52, 0.5 }, 10, -60000, new[] { -9.536424, -20.662252, -29.801325 }, new[] { 0.473365599320166, 0.512806980835123, 0.493088648222347, 0.496374250942909 }),
+		//TestCase(0.35, 1, 14000, new[] { 2.33333333, 4.666666666, 7 }, new[] { 0.350161966207795, 0.350161942625547, 0.350161966207795, 0.3501619583470 }),
+		//TestCase(0.75, 1, -14500, new[] { -2.4166666666, -4.833333333, -7.25 }, new[] { 0.749832099811648, 0.749832074409512, 0.749832099811648, 0.74983209134426 })
+		]
+		public void TestBatterySystemRequest_3Strings_1_Unbalanced(double[] initialSoC, double simInterval, double powerDemand, double[] expectedPowerDemand, double[] expectedSoC)
+		{
+			var inputData = JSONInputDataFactory.ReadREESSData(componentFile, false);
+			Assert.NotNull(inputData);
+
+			var dao = new EngineeringDataAdapter();
+			var tmp = new MockBatteryInputData() {
+				_electricStorageElements = new List<IElectricStorageDeclarationInputData>() {
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = new MockREESSInputData(10.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							400.SI<Volt>(), 500.SI<Ampere>(), 0.03.SI<Ohm>()),
+						StringId = 0,
+						Count = 1
+					},
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = new MockREESSInputData(20.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							400.SI<Volt>(), 500.SI<Ampere>(), 0.02.SI<Ohm>()),
+						StringId = 1,
+						Count = 1
+					},
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = new MockREESSInputData(30.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							400.SI<Volt>(), 500.SI<Ampere>(), 0.01.SI<Ohm>()),
+						StringId = 2,
+						Count = 1
+					}
+
+				}
+			};
+			var batteryData = dao.CreateBatteryData(tmp, 0.8);
+
+			var container = new MockVehicleContainer();
+			var bat = new BatterySystem(container, batteryData);
+			var modData = new MockModalDataContainer();
+			for (var i = 0; i < bat.Batteries.Count; i++) {
+				foreach (var b in bat.Batteries[i].Batteries) {
+					b.Initialize(initialSoC[i]);
+				}
+			}
+			//bat.Initialize(initialSoC);
+
+			var absTime = 0.SI<Second>();
+			var dt = simInterval.SI<Second>();
+			var response = bat.Request(absTime, dt, powerDemand.SI<Watt>(), false);
+			Assert.IsInstanceOf<RESSResponseSuccess>(response);
+			bat.CommitSimulationStep(absTime, dt, modData);
+
+			for (var i = 0; i < 3; i++) {
+				Assert.AreEqual(expectedPowerDemand[i] * 1e3, ((SI)modData[ModalResultField.P_reess_terminal, i]).Value(), 1e-3);
+			}
+
+			var socs = bat.Batteries.SelectMany(x => x.Value.Batteries.Select(y => y.StateOfCharge)).ToArray();
+			Console.WriteLine(string.Join(", ", socs));
+			Console.WriteLine(bat.StateOfCharge);
+			for (var i = 0; i < socs.Length; i++) {
+				Assert.AreEqual(expectedSoC[i], socs[i], 1e-9, $"Bat_{i} SoC");
+			}
+
+			Assert.AreEqual(expectedSoC.Last(), bat.StateOfCharge, 1e-9);
+		}
+
+
+		[
+			TestCase(0.5, 1, 60000, new[] { 3.74922167, 6.25077833, 20, 30 }, new[] { 0.500693147221155, 0.500462098147437, 0.500692716960012, 0.500693147221155, 0.5006930038 }),
+			TestCase(0.5, 1, -60000, new[] { -3.75078419, -6.24921581, -20, -30 }, new[] { 0.499304248566401, 0.499536165710934, 0.499303810709253, 0.499304248566401, 0.499304102614018 }),
+		//TestCase(0.35, 1, 14000, new[] { 2.33333333, 4.666666666, 7 }, new[] { 0.350161966207795, 0.350161942625547, 0.350161966207795, 0.3501619583470 }),
+		//TestCase(0.75, 1, -14500, new[] { -2.4166666666, -4.833333333, -7.25 }, new[] { 0.749832099811648, 0.749832074409512, 0.749832099811648, 0.74983209134426 })
+		]
+		public void TestBatterySystemRequest_3Strings_2_Balanced(double initialSoC, double simInterval, double powerDemand, double[] expectedPowerDemand, double[] expectedSoC)
+		{
+			var inputData = JSONInputDataFactory.ReadREESSData(componentFile, false);
+			Assert.NotNull(inputData);
+
+			var dao = new EngineeringDataAdapter();
+			var tmp = new MockBatteryInputData() {
+				_electricStorageElements = new List<IElectricStorageDeclarationInputData>() {
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = new MockREESSInputData(10.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							150.SI<Volt>(), 200.SI<Ampere>(), 0.01.SI<Ohm>()),
+						StringId = 0,
+						Count = 1
+					},
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = new MockREESSInputData(15.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							250.SI<Volt>(), 300.SI<Ampere>(), 0.02.SI<Ohm>()),
+						StringId = 0,
+						Count = 1
+					},
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = new MockREESSInputData(20.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							400.SI<Volt>(), 500.SI<Ampere>(), 0.02.SI<Ohm>()),
+						StringId = 1,
+						Count = 1
+					},
+					new MockBatteryInputData.MockElectricStorageInputWrapper() {
+						REESSPack = new MockREESSInputData(30.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(),
+							400.SI<Volt>(), 500.SI<Ampere>(), 0.01.SI<Ohm>()),
+						StringId = 2,
+						Count = 1
+					}
+
+				}
+			};
+			var batteryData = dao.CreateBatteryData(tmp, 0.8);
+
+			var container = new MockVehicleContainer();
+			var bat = new BatterySystem(container, batteryData);
+			var modData = new MockModalDataContainer();
+			bat.Initialize(initialSoC);
+
+			var absTime = 0.SI<Second>();
+			var dt = simInterval.SI<Second>();
+			var response = bat.Request(absTime, dt, powerDemand.SI<Watt>(), false);
+			Assert.IsInstanceOf<RESSResponseSuccess>(response);
+			bat.CommitSimulationStep(absTime, dt, modData);
+
+			for (var i = 0; i < 3; i++) {
+				Assert.AreEqual(expectedPowerDemand[i] * 1e3, ((SI)modData[ModalResultField.P_reess_terminal, i]).Value(), 1e-3);
+			}
+
+			var socs = bat.Batteries.SelectMany(x => x.Value.Batteries.Select(y => y.StateOfCharge)).ToArray();
+			Console.WriteLine(string.Join(", ", socs));
+			Console.WriteLine(bat.StateOfCharge);
+			for (var i = 0; i < socs.Length; i++) {
+				Assert.AreEqual(expectedSoC[i], socs[i], 1e-9, $"Bat_{i} SoC");
+			}
+
+			Assert.AreEqual(expectedSoC.Last(), bat.StateOfCharge, 1e-9);
+		}
+	}
+
+	public class MockREESSInputData : IBatteryPackEngineeringInputData
+	{
+		private Volt _voltage;
+		private Ampere _maxCurrent;
+		private Ohm _internalResistance;
+
+		public MockREESSInputData(AmpereSecond capacity, Volt ocv, Ampere maxCurrent, Ohm internalResistance)
+		{
+			Capacity = capacity;
+			_voltage = ocv;
+			_maxCurrent = maxCurrent;
+			_internalResistance = internalResistance;
+		}
+
+		#region Implementation of IComponentInputData
+
+		public DataSource DataSource { get; }
+		public bool SavedInDeclarationMode { get; }
+		public string Manufacturer { get; }
+		public string Model { get; }
+		public DateTime Date { get; }
+		public string AppVersion { get; }
+		public CertificationMethod CertificationMethod { get; }
+		public string CertificationNumber { get; }
+		public DigestData DigestValue { get; }
+
+		#endregion
+
+		#region Implementation of IREESSPackInputData
+
+		public REESSType StorageType => REESSType.Battery;
+
+		#endregion
+
+		#region Implementation of IBatteryPackDeclarationInputData
+
+		public double MinSOC => 0.2;
+		public double MaxSOC => 0.8;
+		public AmpereSecond Capacity { get; }
+
+		public TableData InternalResistanceCurve => VectoCSVFile.ReadStream(
+			InputDataHelper.InputDataAsStream("SoC, Ri",
+				new[] { $"0, {_internalResistance.Value()}", $"100, {_internalResistance.Value()}" }));
+
+		public TableData VoltageCurve => VectoCSVFile.ReadStream(
+			InputDataHelper.InputDataAsStream("SOC, V", 
+				new[] { $"0, {_voltage.Value()}", $"100, {_voltage.Value()}" }));
+
+		public TableData MaxCurrentMap => VectoCSVFile.ReadStream(
+			InputDataHelper.InputDataAsStream("SOC, I_charge, I_discharge",
+				new[] {
+					$"0, {_maxCurrent.Value()}, {_maxCurrent.Value()}",
+					$"100, {_maxCurrent.Value()}, {_maxCurrent.Value()}"
+				}));
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/BatteryTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/BatteryTest.cs
index e4c7ea4929c722538a8adaaba711925f3f1c7ff0..a2a7a12d74cfe47cd2abc0427077d0210b3f8620 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/BatteryTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/BatteryTest.cs
@@ -1,13 +1,15 @@
 using System.IO;
+using System.Linq;
 using NUnit.Framework;
+using TUGraz.VECTO;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.FileIO.JSON;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.Connector.Ports.Impl;
 using TUGraz.VectoCore.Models.SimulationComponent;
-using TUGraz.VectoCore.Models.SimulationComponent.Impl;
 using TUGraz.VectoCore.Tests.Utils;
+using Battery = TUGraz.VectoCore.Models.SimulationComponent.Impl.Battery;
 
 namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 {
@@ -41,12 +43,11 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var tmp = new MockBatteryInputData()
 			{
 				REESSPack = inputData,
-				Count = 1
 			};
 			var batteryData = dao.CreateBatteryData(tmp, 0.8);
 
 			var container = new MockVehicleContainer();
-			var bat = new Battery(container, batteryData);
+			var bat = new Battery(container, batteryData.Batteries.First().Item2);
 			var modData = new MockModalDataContainer();
 			bat.Initialize(initialSoC);
 
@@ -77,12 +78,11 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var tmp = new MockBatteryInputData()
 			{
 				REESSPack = inputData,
-				Count = 1
 			};
 			var batteryData = dao.CreateBatteryData(tmp, 0.8);
 
 			var container = new MockVehicleContainer();
-			var bat = new Battery(container, batteryData);
+			var bat = new Battery(container, batteryData.Batteries.First().Item2);
 
 			bat.Initialize(initialSoC);
 
@@ -110,13 +110,12 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var tmp = new MockBatteryInputData()
 			{
 				REESSPack = inputData,
-				Count = 1
 			};
 			var batteryData = dao.CreateBatteryData(tmp, 0.8);
 
 			var container = new MockVehicleContainer();
 			var es = new ElectricSystem(container);
-			var bat = new Battery(container, batteryData);
+			var bat = new Battery(container, batteryData.Batteries.First().Item2);
 			es.Connect(bat);
 			es.Connect(new MockElectricConsumer(auxPower.SI<Watt>()));
 			bat.Initialize(initialSoC);
@@ -147,12 +146,11 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var tmp = new MockBatteryInputData()
 			{
 				REESSPack = inputData,
-				Count = 1
 			};
 			var batteryData = dao.CreateBatteryData(tmp, 0.8);
 
 			var container = new MockVehicleContainer();
-			var bat = new Battery(container, batteryData);
+			var bat = new Battery(container, batteryData.Batteries.First().Item2);
 
 			bat.Initialize(initialSoC);
 
@@ -181,12 +179,11 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var tmp = new MockBatteryInputData()
 			{
 				REESSPack = inputData,
-				Count = 1
 			};
 			var batteryData = dao.CreateBatteryData(tmp, 0.8);
 
 			var container = new MockVehicleContainer();
-			var bat = new Battery(container, batteryData);
+			var bat = new Battery(container, batteryData.Batteries.First().Item2);
 			var es = new ElectricSystem(container);
 			es.Connect(bat);
 			es.Connect(new MockElectricConsumer(auxPower.SI<Watt>()));
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
index f2f55a77788e1f88e3b6a5d197125d9ceeb435d5..1af5d540f2b0fae28eae9f33ba5cc9a605441f5f 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
@@ -253,10 +253,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var batInput = JSONInputDataFactory.ReadREESSData(BatFile, false);
 			var tmp = new MockBatteryInputData() {
 				REESSPack = batInput,
-				Count = 1
 			};
 			var batteryData = dao.CreateBatteryData(tmp, 0.8);
-			var battery = new Battery(container, batteryData);
+			var battery = new Battery(container, batteryData.Batteries.First().Item2);
 			var es = new ElectricSystem(container);
 			es.Connect(battery);
 
@@ -318,10 +317,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var tmp = new MockBatteryInputData()
 			{
 				REESSPack = batInput,
-				Count = 1
 			};
 			var batteryData = dao.CreateBatteryData(tmp, 0.8);
-			var battery = new Battery(container, batteryData);
+			var battery = new Battery(container, batteryData.Batteries.First().Item2);
 			container.BatteryInfo = battery;
 			var es = new ElectricSystem(container);
 			es.Connect(battery);
@@ -374,7 +372,6 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var tmp = new MockBatteryInputData()
 			{
 				REESSPack = batInput,
-				Count = 1
 			};
 			var batteryData = dao.CreateBatteryData(tmp, 0.8);
 
@@ -388,7 +385,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var container = new VehicleContainer(ExecutionMode.Engineering, modData);
 			new EngineOnlyGearboxInfo(container);
 
-			var battery = new Battery(container, batteryData);
+			var battery = new Battery(container, batteryData.Batteries.First().Item2);
 			var es = new ElectricSystem(container);
 			es.Connect(battery);
 			battery.Initialize(initialSoc);
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/325kW.vfld b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/325kW.vfld
new file mode 100644
index 0000000000000000000000000000000000000000..750d4048ef2da521d3c51bd0a8af39b6373c8575
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/325kW.vfld
@@ -0,0 +1,202 @@
+engine speed [1/min], full load torque [Nm], motoring torque [Nm]
+600,1188,-138
+608,1206.92,-138.2
+616,1225.84,-138.4
+624,1244.76,-138.6
+632,1263.68,-138.8
+640,1282.6,-139
+648,1301.52,-139.2
+656,1320.44,-139.4
+664,1339.36,-139.6
+672,1358.28,-139.8
+680,1377.2,-140
+688,1396.12,-140.2
+696,1415.04,-140.4
+704,1433.96,-140.6
+712,1452.88,-140.8
+720,1471.8,-141
+728,1490.72,-141.2
+736,1509.64,-141.4
+744,1528.56,-141.6
+752,1547.48,-141.8
+760,1566.4,-142
+768,1585.32,-142.2
+776,1604.24,-142.4
+784,1623.16,-142.6
+792,1642.08,-142.8
+800,1661,-143
+808,1679.92,-143.36
+816,1698.84,-143.72
+824,1717.76,-144.08
+832,1736.68,-144.44
+840,1755.6,-144.8
+848,1774.52,-145.16
+856,1793.44,-145.52
+864,1812.36,-145.88
+872,1831.28,-146.24
+880,1850.2,-146.6
+888,1869.12,-146.96
+896,1888.04,-147.32
+904,1906.96,-147.68
+912,1925.88,-148.04
+920,1944.8,-148.4
+928,1963.72,-148.76
+936,1982.64,-149.12
+944,2001.56,-149.48
+952,2020.48,-149.84
+960,2039.4,-150.2
+968,2058.32,-150.56
+976,2077.24,-150.92
+984,2096.16,-151.28
+992,2115.08,-151.64
+1000,2134,-152
+1008,2134,-152.52
+1016,2134,-153.04
+1024,2134,-153.56
+1032,2134,-154.08
+1040,2134,-154.6
+1048,2134,-155.12
+1056,2134,-155.64
+1064,2134,-156.16
+1072,2134,-156.68
+1080,2134,-157.2
+1088,2134,-157.72
+1096,2134,-158.24
+1104,2134,-158.76
+1112,2134,-159.28
+1120,2134,-159.8
+1128,2134,-160.32
+1136,2134,-160.84
+1144,2134,-161.36
+1152,2134,-161.88
+1160,2134,-162.4
+1168,2134,-162.92
+1176,2134,-163.44
+1184,2134,-163.96
+1192,2134,-164.48
+1200,2134,-165
+1208,2134,-165.88
+1216,2134,-166.76
+1224,2134,-167.64
+1232,2134,-168.52
+1240,2134,-169.4
+1248,2134,-170.28
+1256,2134,-171.16
+1264,2134,-172.04
+1272,2134,-172.92
+1280,2134,-173.8
+1288,2134,-174.68
+1296,2134,-175.56
+1304,2134,-176.44
+1312,2134,-177.32
+1320,2134,-178.2
+1328,2134,-179.08
+1336,2134,-179.96
+1344,2134,-180.84
+1352,2134,-181.72
+1360,2134,-182.6
+1368,2134,-183.48
+1376,2134,-184.36
+1384,2134,-185.24
+1392,2134,-186.12
+1400,2134,-187
+1408,2125.76,-188.2
+1416,2117.52,-189.4
+1424,2109.28,-190.6
+1432,2101.04,-191.8
+1440,2092.8,-193
+1448,2084.56,-194.2
+1456,2076.32,-195.4
+1464,2068.08,-196.6
+1472,2059.84,-197.8
+1480,2051.6,-199
+1488,2043.36,-200.2
+1496,2035.12,-201.3911
+1504,2026.88,-202.5793
+1512,2018.64,-203.7675
+1520,2010.4,-204.9557
+1528,2002.16,-206.1439
+1536,1993.92,-207.3321
+1544,1985.68,-208.5203
+1552,1977.44,-209.7085
+1560,1969.2,-210.8967
+1568,1960.96,-212.0849
+1576,1952.72,-213.2731
+1584,1944.48,-214.4613
+1592,1936.24,-215.6495
+1600,1928,-216.8377
+1608,1919.76,-218.0259
+1616,1911.52,-219.16
+1624,1903.28,-220.24
+1632,1895.04,-221.32
+1640,1886.8,-222.4
+1648,1878.56,-223.48
+1656,1870.32,-224.56
+1664,1862.08,-225.64
+1672,1853.84,-226.72
+1680,1845.6,-227.8
+1688,1837.36,-228.88
+1696,1829.12,-229.96
+1704,1820.88,-231.04
+1712,1812.64,-232.12
+1720,1804.4,-233.2
+1728,1796.16,-234.28
+1736,1787.92,-235.36
+1744,1779.68,-236.44
+1752,1771.44,-237.52
+1760,1763.2,-238.6
+1768,1754.96,-239.68
+1776,1746.72,-240.76
+1784,1738.48,-241.84
+1792,1730.24,-242.92
+1800,1722,-244
+1808,1703.24,-245.36
+1816,1684.48,-246.72
+1824,1665.72,-248.08
+1832,1646.96,-249.44
+1840,1628.2,-250.8
+1848,1609.44,-252.16
+1856,1590.68,-253.52
+1864,1571.92,-254.88
+1872,1553.16,-256.24
+1880,1534.4,-257.6
+1888,1515.64,-258.96
+1896,1496.88,-260.32
+1904,1478.12,-261.68
+1912,1459.36,-263.04
+1920,1440.6,-264.4
+1928,1421.84,-265.76
+1936,1403.08,-267.12
+1944,1384.32,-268.48
+1952,1365.56,-269.84
+1960,1346.8,-271.2
+1968,1328.04,-272.56
+1976,1309.28,-273.92
+1984,1290.52,-275.28
+1992,1271.76,-276.64
+2000,1253,-278
+2008,1234.28,-279.36
+2016,1215.56,-280.72
+2024,1196.84,-282.08
+2032,1178.12,-283.44
+2040,1159.4,-284.8
+2048,1140.68,-286.16
+2056,1121.96,-287.52
+2064,1103.24,-288.88
+2072,1084.52,-290.24
+2080,1065.8,-291.6
+2088,1047.08,-292.96
+2096,1028.36,-294.32
+2104,978.24,-295.68
+2112,896.72,-297.04
+2120,815.2,-298.4
+2128,733.68,-299.76
+2136,652.16,-301.12
+2144,570.64,-302.48
+2152,489.12,-303.84
+2160,407.6,-305.2
+2168,326.08,-306.56
+2176,244.56,-307.92
+2184,163.04,-309.28
+2192,81.52,-310.64
+2200,0,-312
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/325kW.vmap b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/325kW.vmap
new file mode 100644
index 0000000000000000000000000000000000000000..eea08f963f4b23b49f15d030db630b52edc1d4e3
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/325kW.vmap
@@ -0,0 +1,140 @@
+engine speed [rpm], torque [Nm], fuel consumption [g/h]
+500,-135.5,0
+500,0,1355
+500,213.4,3412.291
+500,426.8,5830.1
+500,640.2,8316.426
+500,853.6,10439.87
+500,1067,12823.69
+500,1188,14228.79
+500,1401.4,16628.66
+600,-138,0
+600,0,1355
+600,213.4,3412.291
+600,426.8,5830.1
+600,640.2,8316.426
+600,853.6,10439.87
+600,1067,12823.69
+600,1188,14228.79
+600,1401.4,16628.66
+751,-141.775,0
+750.9,0,1649.255
+750.9,213.4,4157.795
+750.9,426.8,7149.494
+750.9,640.2,10037.08
+750.9,853.6,12957.07
+750.9,1067,16055.22
+750.9,1280.4,19231.36
+750.9,1493.8,22400.17
+750.9,1544.879,23213.92
+751,1758.279,26392.93
+902,-147.59,0
+901.8,0,2210.735
+901.8,213.4,5204.867
+901.8,426.8,8515.462
+901.8,640.2,11804.75
+901.8,853.6,15410.55
+901.8,1067,19081.7
+901.8,1280.4,22742.96
+901.8,1493.8,26543.87
+901.8,1707.2,30534.68
+901.8,1901.757,34352.75
+902,2115.157,38403.27
+1053,-155.445,0
+1052.7,0,2768.035
+1052.7,213.4,6228.407
+1052.7,426.8,9836.041
+1052.7,640.2,13624.5
+1052.7,853.6,17854.95
+1052.7,1067,22072.71
+1052.7,1280.4,26161.13
+1052.7,1493.8,30525.55
+1052.7,1707.2,35019.18
+1052.7,1920.6,39913.3
+1052.7,2134,45438.16
+1053,2347.4,50542.53
+1204,-165.44,0
+1203.6,0,3086.704
+1203.6,213.4,6943.027
+1203.6,426.8,11040.37
+1203.6,640.2,15504.65
+1203.6,853.6,20335.89
+1203.6,1067,25176.6
+1203.6,1280.4,29782.22
+1203.6,1493.8,34642.24
+1203.6,1707.2,39786.14
+1203.6,1920.6,45254.8
+1203.6,2134,51129.03
+1204,2347.4,56732.88
+1367,-183.37,0
+1367.1,0,3845.344
+1367.1,213.4,7981.742
+1367.1,426.8,12796.69
+1367.1,640.2,17789.2
+1367.1,853.6,22854.21
+1367.1,1067,28302.84
+1367.1,1280.4,33739.91
+1367.1,1493.8,39393.87
+1367.1,1707.2,45836.33
+1367.1,1920.6,52078.71
+1367.1,2134,58296.41
+1367,2347.4,64530.56
+1490,-200.5,0
+1489.6,0,4373.424
+1489.6,213.4,8861.484
+1489.6,426.8,14090.86
+1489.6,640.2,19518.29
+1489.6,853.6,25092.8
+1489.6,1067,30873.69
+1489.6,1280.4,36865.42
+1489.6,1493.8,43095.57
+1489.6,1707.2,50249.81
+1489.6,1920.6,57035.25
+1489.6,2041.712,60609.5
+1490,2255.112,67311.83
+1612,-218.62,0
+1612.2,0,4904.015
+1612.2,213.4,9810.482
+1612.2,426.8,15403.9
+1612.2,640.2,21301.35
+1612.2,853.6,27492.32
+1612.2,1067,33580.96
+1612.2,1280.4,40114.61
+1612.2,1493.8,46914.77
+1612.2,1707.2,54666.14
+1612.2,1915.434,61862.91
+1612,2128.834,69491.99
+1735,-235.225,0
+1734.7,0,5586.953
+1734.7,213.4,11041.15
+1734.7,426.8,16949.24
+1734.7,640.2,23500.23
+1734.7,853.6,30159.59
+1734.7,1067,36741.18
+1734.7,1280.4,43923.85
+1734.7,1493.8,51295.21
+1734.7,1707.2,59469.31
+1734.7,1789.259,62731.31
+1735,2002.659,70935.23
+1857,-253.69,0
+1857.3,0,6673.839
+1857.3,213.4,12518.56
+1857.3,426.8,18687.88
+1857.3,640.2,25652.39
+1857.3,853.6,33003.08
+1857.3,1067,40438.09
+1857.3,1280.4,48117.52
+1857.3,1493.8,55848.59
+1857.3,1587.631,59434.17
+1857,1801.031,67215.39
+1957,-270.69,0
+1957.3,0,6673.839
+1957.3,213.4,12518.56
+1957.3,426.8,18687.88
+1957.3,640.2,25652.39
+1957.3,853.6,33003.08
+1957.3,1067,40438.09
+1957.3,1280.4,48117.52
+1957.3,1493.8,55848.59
+1957.3,1587.631,59434.17
+1957,1801.031,67215.39
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/AMT_12.vgbx b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/AMT_12.vgbx
new file mode 100644
index 0000000000000000000000000000000000000000..6a66c1bccbbea0b3185663e41217f32df21ee1df
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/AMT_12.vgbx
@@ -0,0 +1,117 @@
+{
+  "Header": {
+    "CreatedBy": "",
+    "Date": "2020-09-07T15:26:44.5653903Z",
+    "AppVersion": "3",
+    "FileVersion": 6
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "ModelName": "tractor_12gear_example",
+    "Inertia": 0.0,
+    "TracInt": 1.0,
+    "Gears": [
+      {
+        "Ratio": 2.64,
+        "LossMap": "Axle_4x2_Tractor.vtlm"
+      },
+      {
+        "Ratio": 14.93,
+        "LossMap": "Gear_1.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 11.64,
+        "LossMap": "Gear_2.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 9.02,
+        "LossMap": "Gear_3.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 7.04,
+        "LossMap": "Gear_4.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 5.64,
+        "LossMap": "Gear_5.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 4.4,
+        "LossMap": "Gear_6.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 3.39,
+        "LossMap": "Gear_7.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 2.65,
+        "LossMap": "Gear_8.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 2.05,
+        "LossMap": "Gear_9.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 1.6,
+        "LossMap": "Gear_10.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 1.28,
+        "LossMap": "Gear_11.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      },
+      {
+        "Ratio": 1.0,
+        "LossMap": "Gear_12.vtlm",
+        "ShiftPolygon": "",
+        "MaxTorque": "",
+        "MaxSpeed": ""
+      }
+    ],
+    "TqReserve": 20.0,
+    "ShiftTime": 2.0,
+    "StartTqReserve": 20.0,
+    "StartSpeed": 2.0,
+    "StartAcc": 0.6,
+    "GearboxType": "AMT",
+    "TorqueConverter": {
+      "Enabled": false
+    },
+    "DownshiftAfterUpshiftDelay": 6.0,
+    "UpshiftAfterDownshiftDelay": 6.0,
+    "UpshiftMinAcceleration": 0.1,
+    "PowershiftShiftTime": 0.8
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Axle_4x2_Tractor.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Axle_4x2_Tractor.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..e11cbf7cdde175e06ab8f6a0b79d46b84b3e0c1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Axle_4x2_Tractor.vtlm
@@ -0,0 +1,317 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5478,220
+0,-176,28
+0,0,8
+0,116,14
+0,220,17
+0,326,21
+0,432,24
+0,641,31
+0,853,38
+0,1274,53
+0,1696,67
+0,2117,82
+0,2538,96
+0,2959,110
+0,3376,119
+0,3785,123
+0,4200,130
+0,6309,204
+0,8409,268
+0,10507,332
+0,12606,396
+0,16804,523
+0,21002,651
+0,25199,778
+0,29397,905
+0,33594,1032
+0,37792,1160
+0,41990,1288
+0,46187,1415
+0,50385,1542
+143,-5482,216
+143,-174,28
+143,0,9
+143,116,14
+143,222,17
+143,326,21
+143,432,24
+143,641,31
+143,853,38
+143,1273,52
+143,1694,66
+143,2115,80
+143,2536,94
+143,2957,108
+143,3372,116
+143,3786,123
+143,4200,130
+143,6323,218
+143,8427,287
+143,10532,356
+143,12635,425
+143,16843,563
+143,21052,701
+143,25260,839
+143,29467,977
+143,33676,1115
+143,37884,1253
+143,42092,1391
+143,46300,1529
+143,50509,1667
+285,-5496,202
+285,-172,32
+285,0,10
+285,118,16
+285,223,19
+285,327,22
+285,432,24
+285,641,31
+285,851,37
+285,1271,50
+285,1690,63
+285,2110,75
+285,2530,88
+285,2950,101
+285,3369,113
+285,3780,117
+285,4195,124
+285,6305,200
+285,8402,262
+285,10499,324
+285,12596,386
+285,16791,510
+285,20987,636
+285,25181,760
+285,29376,884
+285,33570,1009
+285,37765,1133
+285,41960,1259
+285,46154,1383
+285,50350,1507
+428,-5501,200
+428,-167,35
+428,0,12
+428,119,17
+428,224,21
+428,328,23
+428,433,26
+428,643,31
+428,851,37
+428,1270,49
+428,1689,61
+428,2109,74
+428,2529,87
+428,2949,100
+428,3365,109
+428,3778,115
+428,4191,121
+428,6296,191
+428,8390,251
+428,10485,310
+428,12579,369
+428,16767,486
+428,20955,604
+428,25143,723
+428,29332,841
+428,33521,958
+428,37708,1076
+428,41897,1195
+428,46084,1313
+428,50273,1430
+570,-5512,188
+570,-167,37
+570,0,13
+570,121,19
+570,224,21
+570,328,23
+570,433,26
+570,641,31
+570,850,36
+570,1268,46
+570,1685,58
+570,2104,70
+570,2523,81
+570,2943,94
+570,3363,107
+570,3776,113
+570,4189,118
+570,6281,175
+570,8369,230
+570,10459,283
+570,12547,336
+570,16724,443
+570,20901,550
+570,25078,658
+570,29255,764
+570,33432,871
+570,37611,979
+570,41788,1086
+570,45965,1192
+570,50142,1299
+713,-5517,181
+713,-165,39
+713,0,14
+713,122,20
+713,225,22
+713,329,24
+713,433,27
+713,641,30
+713,850,36
+713,1267,45
+713,1684,56
+713,2102,67
+713,2521,79
+713,2939,90
+713,3358,102
+713,3775,111
+713,4188,118
+713,6272,166
+713,8357,217
+713,10442,267
+713,12527,317
+713,16697,416
+713,20867,517
+713,25039,617
+713,29209,717
+713,33379,818
+713,37549,918
+713,41719,1017
+713,45890,1117
+713,50060,1218
+855,-5524,174
+855,-162,42
+855,0,15
+855,122,21
+855,226,22
+855,329,24
+855,434,27
+855,641,31
+855,849,35
+855,1266,45
+855,1683,55
+855,2100,65
+855,2518,77
+855,2937,87
+855,3355,99
+855,3775,111
+855,4188,117
+855,6264,158
+855,8346,205
+855,10427,252
+855,12509,299
+855,16674,393
+855,20838,487
+855,25003,581
+855,29167,675
+855,33330,769
+855,37495,863
+855,41659,957
+855,45823,1051
+855,49988,1145
+998,-5526,172
+998,-160,44
+998,0,16
+998,123,22
+998,227,23
+998,331,26
+998,435,28
+998,641,31
+998,850,36
+998,1266,45
+998,1682,55
+998,2100,64
+998,2517,74
+998,2935,86
+998,3354,97
+998,3772,109
+998,4185,115
+998,6258,153
+998,8338,197
+998,10418,242
+998,12498,288
+998,16658,377
+998,20817,466
+998,24977,556
+998,29137,645
+998,33297,735
+998,37456,825
+998,41616,914
+998,45776,1003
+998,49936,1093
+1140,-5529,169
+1140,-158,46
+1140,0,18
+1140,125,23
+1140,229,24
+1140,332,27
+1140,436,29
+1140,643,32
+1140,851,37
+1140,1267,45
+1140,1683,55
+1140,2100,64
+1140,2516,74
+1140,2934,85
+1140,3352,96
+1140,3771,108
+1140,4183,114
+1283,-5529,169
+1283,-155,49
+1283,0,19
+1283,126,24
+1283,230,26
+1283,333,28
+1283,437,30
+1283,644,34
+1283,853,38
+1283,1267,46
+1283,1683,55
+1283,2098,64
+1283,2516,74
+1283,2934,85
+1283,3351,95
+1283,3764,101
+1425,-5531,167
+1425,-153,51
+1425,0,20
+1425,128,26
+1425,231,27
+1425,336,30
+1425,436,29
+1425,646,36
+1425,853,38
+1425,1268,46
+1425,1683,55
+1425,2098,63
+1425,2516,73
+1425,2932,84
+1425,3345,89
+1568,-5538,160
+1568,-148,56
+1568,0,21
+1568,129,28
+1568,232,29
+1568,336,31
+1568,440,32
+1568,647,37
+1568,854,41
+1568,1269,48
+1568,1684,57
+1568,2101,65
+1568,2517,74
+1568,2929,80
+1853,-5540,158
+1853,-144,60
+1853,0,24
+1853,132,30
+1853,234,31
+1853,340,34
+1853,442,35
+1853,650,38
+1853,856,42
+1853,1269,49
+1853,1684,57
+1853,2098,64
+1853,2515,73
+1853,2928,79
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Default.vrlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Default.vrlm
new file mode 100644
index 0000000000000000000000000000000000000000..eb575b99973291e5414c4826da086c1f03a7f179
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Default.vrlm
@@ -0,0 +1,32 @@
+Retarder Speed [1/min],Torque Loss [Nm]
+0,10
+100,10
+200,10.1
+300,10.2
+400,10.3
+500,10.5
+600,10.7
+700,11
+800,11.3
+900,11.6
+1000,12
+1100,12.4
+1200,12.9
+1300,13.4
+1400,13.9
+1500,14.5
+1600,15.1
+1700,15.8
+1800,16.5
+1900,17.2
+2000,18
+2100,18.8
+2200,19.7
+2300,20.6
+2400,21.5
+2500,22.5
+2600,23.5
+2700,24.6
+2800,25.7
+2900,26.8
+3000,28
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Engine_325kW_12.7l.veng b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Engine_325kW_12.7l.veng
new file mode 100644
index 0000000000000000000000000000000000000000..084062afccf57ee58c485634cb158fdf05647b86
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Engine_325kW_12.7l.veng
@@ -0,0 +1,35 @@
+{
+  "Header": {
+    "CreatedBy": "",
+    "Date": "2020-08-21T09:24:04.0725494Z",
+    "AppVersion": "3",
+    "FileVersion": 5
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "ModelName": "325kW 12.7l Engine",
+    "Displacement": "12740",
+    "IdlingSpeed": 600.0,
+    "Inertia": 5.1498,
+    "Fuels": [
+      {
+        "WHTC-Urban": 0.0,
+        "WHTC-Rural": 0.0,
+        "WHTC-Motorway": 0.0,
+        "WHTC-Engineering": 1.0,
+        "ColdHotBalancingFactor": 0.0,
+        "CFRegPer": 1.0,
+        "FuelMap": "325kW.vmap",
+        "FuelType": "DieselCI"
+      }
+    ],
+    "RatedPower": 0.0,
+    "RatedSpeed": 0.0,
+    "MaxTorque": 0.0,
+    "FullLoadCurve": "325kW.vfld",
+    "WHRType": [
+      "None"
+    ],
+    "WHRCorrectionFactors": {}
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_1.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_1.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_1.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_10.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_10.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_10.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_11.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_11.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_11.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_12.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_12.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..d30c0dbb042ca6d2235b4febe01b31292e5593c0
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_12.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,74.2
+0,-5000.0,69.2
+0,-4500.0,59.2
+0,-4000.0,59.2
+0,-3500.0,54.2
+0,-3000.0,49.2
+0,-2500.0,44.2
+0,-2000.0,39.2
+0,-1600.0,35.2
+0,-1200.0,31.2
+0,-900.0,28.2
+0,-600.0,25.2
+0,-400.0,23.2
+0,-200.0,21.2
+0,0.0,21.2
+0,200.0,21.2
+0,400.0,23.2
+0,600.0,25.2
+0,900.0,28.2
+0,1200.0,31.2
+0,1600.0,35.2
+0,2000.0,39.2
+0,2500.0,44.2
+0,3000.0,49.2
+0,3500.0,54.2
+0,4000.0,59.2
+0,4500.0,64.2
+0,5000.0,69.2
+0,5500.0,74.2
+600,-5500.0,74.2
+600,-5000.0,69.2
+600,-4500.0,59.2
+600,-4000.0,59.2
+600,-3500.0,54.2
+600,-3000.0,49.2
+600,-2500.0,44.2
+600,-2000.0,39.2
+600,-1600.0,35.2
+600,-1200.0,31.2
+600,-900.0,28.2
+600,-600.0,25.2
+600,-400.0,23.2
+600,-200.0,21.2
+600,0.0,21.2
+600,200.0,21.2
+600,400.0,23.2
+600,600.0,25.2
+600,900.0,28.2
+600,1200.0,31.2
+600,1600.0,35.2
+600,2000.0,39.2
+600,2500.0,44.2
+600,3000.0,49.2
+600,3500.0,54.2
+600,4000.0,59.2
+600,4500.0,64.2
+600,5000.0,69.2
+600,5500.0,74.2
+900,-5500.0,77.8
+900,-5000.0,72.8
+900,-4500.0,62.8
+900,-4000.0,62.8
+900,-3500.0,57.8
+900,-3000.0,52.8
+900,-2500.0,47.8
+900,-2000.0,42.8
+900,-1600.0,38.8
+900,-1200.0,34.8
+900,-900.0,31.8
+900,-600.0,28.8
+900,-400.0,26.8
+900,-200.0,24.8
+900,0.0,24.8
+900,200.0,24.8
+900,400.0,26.8
+900,600.0,28.8
+900,900.0,31.8
+900,1200.0,34.8
+900,1600.0,38.8
+900,2000.0,42.8
+900,2500.0,47.8
+900,3000.0,52.8
+900,3500.0,57.8
+900,4000.0,62.8
+900,4500.0,67.8
+900,5000.0,72.8
+900,5500.0,77.8
+1200,-5500.0,81.4
+1200,-5000.0,76.4
+1200,-4500.0,66.4
+1200,-4000.0,66.4
+1200,-3500.0,61.4
+1200,-3000.0,56.4
+1200,-2500.0,51.4
+1200,-2000.0,46.4
+1200,-1600.0,42.4
+1200,-1200.0,38.4
+1200,-900.0,35.4
+1200,-600.0,32.4
+1200,-400.0,30.4
+1200,-200.0,28.4
+1200,0.0,28.4
+1200,200.0,28.4
+1200,400.0,30.4
+1200,600.0,32.4
+1200,900.0,35.4
+1200,1200.0,38.4
+1200,1600.0,42.4
+1200,2000.0,46.4
+1200,2500.0,51.4
+1200,3000.0,56.4
+1200,3500.0,61.4
+1200,4000.0,66.4
+1200,4500.0,71.4
+1200,5000.0,76.4
+1200,5500.0,81.4
+1600,-5500.0,86.2
+1600,-5000.0,81.2
+1600,-4500.0,71.2
+1600,-4000.0,71.2
+1600,-3500.0,66.2
+1600,-3000.0,61.2
+1600,-2500.0,56.2
+1600,-2000.0,51.2
+1600,-1600.0,47.2
+1600,-1200.0,43.2
+1600,-900.0,40.2
+1600,-600.0,37.2
+1600,-400.0,35.2
+1600,-200.0,33.2
+1600,0.0,33.2
+1600,200.0,33.2
+1600,400.0,35.2
+1600,600.0,37.2
+1600,900.0,40.2
+1600,1200.0,43.2
+1600,1600.0,47.2
+1600,2000.0,51.2
+1600,2500.0,56.2
+1600,3000.0,61.2
+1600,3500.0,66.2
+1600,4000.0,71.2
+1600,4500.0,76.2
+1600,5000.0,81.2
+1600,5500.0,86.2
+2000,-5500.0,91.0
+2000,-5000.0,86.0
+2000,-4500.0,76.0
+2000,-4000.0,76.0
+2000,-3500.0,71.0
+2000,-3000.0,66.0
+2000,-2500.0,61.0
+2000,-2000.0,56.0
+2000,-1600.0,52.0
+2000,-1200.0,48.0
+2000,-900.0,45.0
+2000,-600.0,42.0
+2000,-400.0,40.0
+2000,-200.0,38.0
+2000,0.0,38.0
+2000,200.0,38.0
+2000,400.0,40.0
+2000,600.0,42.0
+2000,900.0,45.0
+2000,1200.0,48.0
+2000,1600.0,52.0
+2000,2000.0,56.0
+2000,2500.0,61.0
+2000,3000.0,66.0
+2000,3500.0,71.0
+2000,4000.0,76.0
+2000,4500.0,81.0
+2000,5000.0,86.0
+2000,5500.0,91.0
+2500,-5500.0,97.0
+2500,-5000.0,92.0
+2500,-4500.0,82.0
+2500,-4000.0,82.0
+2500,-3500.0,77.0
+2500,-3000.0,72.0
+2500,-2500.0,67.0
+2500,-2000.0,62.0
+2500,-1600.0,58.0
+2500,-1200.0,54.0
+2500,-900.0,51.0
+2500,-600.0,48.0
+2500,-400.0,46.0
+2500,-200.0,44.0
+2500,0.0,44.0
+2500,200.0,44.0
+2500,400.0,46.0
+2500,600.0,48.0
+2500,900.0,51.0
+2500,1200.0,54.0
+2500,1600.0,58.0
+2500,2000.0,62.0
+2500,2500.0,67.0
+2500,3000.0,72.0
+2500,3500.0,77.0
+2500,4000.0,82.0
+2500,4500.0,87.0
+2500,5000.0,92.0
+2500,5500.0,97.0
+3000,-5500.0,103.0
+3000,-5000.0,98.0
+3000,-4500.0,88.0
+3000,-4000.0,88.0
+3000,-3500.0,83.0
+3000,-3000.0,78.0
+3000,-2500.0,73.0
+3000,-2000.0,68.0
+3000,-1600.0,64.0
+3000,-1200.0,60.0
+3000,-900.0,57.0
+3000,-600.0,54.0
+3000,-400.0,52.0
+3000,-200.0,50.0
+3000,0.0,50.0
+3000,200.0,50.0
+3000,400.0,52.0
+3000,600.0,54.0
+3000,900.0,57.0
+3000,1200.0,60.0
+3000,1600.0,64.0
+3000,2000.0,68.0
+3000,2500.0,73.0
+3000,3000.0,78.0
+3000,3500.0,83.0
+3000,4000.0,88.0
+3000,4500.0,93.0
+3000,5000.0,98.0
+3000,5500.0,103.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_2.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_2.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_2.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_3.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_3.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_3.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_4.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_4.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_4.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_5.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_5.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_5.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_6.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_6.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_6.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_7.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_7.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_7.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_8.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_8.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_8.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_9.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_9.vtlm
new file mode 100644
index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Gear_9.vtlm
@@ -0,0 +1,233 @@
+Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm]
+0,-5500.0,239.2
+0,-5000.0,219.2
+0,-4500.0,179.2
+0,-4000.0,179.2
+0,-3500.0,159.2
+0,-3000.0,139.2
+0,-2500.0,119.2
+0,-2000.0,99.2
+0,-1600.0,83.2
+0,-1200.0,67.2
+0,-900.0,55.2
+0,-600.0,43.2
+0,-400.0,35.2
+0,-200.0,27.2
+0,0.0,27.2
+0,200.0,27.2
+0,400.0,35.2
+0,600.0,43.2
+0,900.0,55.2
+0,1200.0,67.2
+0,1600.0,83.2
+0,2000.0,99.2
+0,2500.0,119.2
+0,3000.0,139.2
+0,3500.0,159.2
+0,4000.0,179.2
+0,4500.0,199.2
+0,5000.0,219.2
+0,5500.0,239.2
+600,-5500.0,239.2
+600,-5000.0,219.2
+600,-4500.0,179.2
+600,-4000.0,179.2
+600,-3500.0,159.2
+600,-3000.0,139.2
+600,-2500.0,119.2
+600,-2000.0,99.2
+600,-1600.0,83.2
+600,-1200.0,67.2
+600,-900.0,55.2
+600,-600.0,43.2
+600,-400.0,35.2
+600,-200.0,27.2
+600,0.0,27.2
+600,200.0,27.2
+600,400.0,35.2
+600,600.0,43.2
+600,900.0,55.2
+600,1200.0,67.2
+600,1600.0,83.2
+600,2000.0,99.2
+600,2500.0,119.2
+600,3000.0,139.2
+600,3500.0,159.2
+600,4000.0,179.2
+600,4500.0,199.2
+600,5000.0,219.2
+600,5500.0,239.2
+900,-5500.0,242.8
+900,-5000.0,222.8
+900,-4500.0,182.8
+900,-4000.0,182.8
+900,-3500.0,162.8
+900,-3000.0,142.8
+900,-2500.0,122.8
+900,-2000.0,102.8
+900,-1600.0,86.8
+900,-1200.0,70.8
+900,-900.0,58.8
+900,-600.0,46.8
+900,-400.0,38.8
+900,-200.0,30.8
+900,0.0,30.8
+900,200.0,30.8
+900,400.0,38.8
+900,600.0,46.8
+900,900.0,58.8
+900,1200.0,70.8
+900,1600.0,86.8
+900,2000.0,102.8
+900,2500.0,122.8
+900,3000.0,142.8
+900,3500.0,162.8
+900,4000.0,182.8
+900,4500.0,202.8
+900,5000.0,222.8
+900,5500.0,242.8
+1200,-5500.0,246.4
+1200,-5000.0,226.4
+1200,-4500.0,186.4
+1200,-4000.0,186.4
+1200,-3500.0,166.4
+1200,-3000.0,146.4
+1200,-2500.0,126.4
+1200,-2000.0,106.4
+1200,-1600.0,90.4
+1200,-1200.0,74.4
+1200,-900.0,62.4
+1200,-600.0,50.4
+1200,-400.0,42.4
+1200,-200.0,34.4
+1200,0.0,34.4
+1200,200.0,34.4
+1200,400.0,42.4
+1200,600.0,50.4
+1200,900.0,62.4
+1200,1200.0,74.4
+1200,1600.0,90.4
+1200,2000.0,106.4
+1200,2500.0,126.4
+1200,3000.0,146.4
+1200,3500.0,166.4
+1200,4000.0,186.4
+1200,4500.0,206.4
+1200,5000.0,226.4
+1200,5500.0,246.4
+1600,-5500.0,251.2
+1600,-5000.0,231.2
+1600,-4500.0,191.2
+1600,-4000.0,191.2
+1600,-3500.0,171.2
+1600,-3000.0,151.2
+1600,-2500.0,131.2
+1600,-2000.0,111.2
+1600,-1600.0,95.2
+1600,-1200.0,79.2
+1600,-900.0,67.2
+1600,-600.0,55.2
+1600,-400.0,47.2
+1600,-200.0,39.2
+1600,0.0,39.2
+1600,200.0,39.2
+1600,400.0,47.2
+1600,600.0,55.2
+1600,900.0,67.2
+1600,1200.0,79.2
+1600,1600.0,95.2
+1600,2000.0,111.2
+1600,2500.0,131.2
+1600,3000.0,151.2
+1600,3500.0,171.2
+1600,4000.0,191.2
+1600,4500.0,211.2
+1600,5000.0,231.2
+1600,5500.0,251.2
+2000,-5500.0,256.0
+2000,-5000.0,236.0
+2000,-4500.0,196.0
+2000,-4000.0,196.0
+2000,-3500.0,176.0
+2000,-3000.0,156.0
+2000,-2500.0,136.0
+2000,-2000.0,116.0
+2000,-1600.0,100.0
+2000,-1200.0,84.0
+2000,-900.0,72.0
+2000,-600.0,60.0
+2000,-400.0,52.0
+2000,-200.0,44.0
+2000,0.0,44.0
+2000,200.0,44.0
+2000,400.0,52.0
+2000,600.0,60.0
+2000,900.0,72.0
+2000,1200.0,84.0
+2000,1600.0,100.0
+2000,2000.0,116.0
+2000,2500.0,136.0
+2000,3000.0,156.0
+2000,3500.0,176.0
+2000,4000.0,196.0
+2000,4500.0,216.0
+2000,5000.0,236.0
+2000,5500.0,256.0
+2500,-5500.0,262.0
+2500,-5000.0,242.0
+2500,-4500.0,202.0
+2500,-4000.0,202.0
+2500,-3500.0,182.0
+2500,-3000.0,162.0
+2500,-2500.0,142.0
+2500,-2000.0,122.0
+2500,-1600.0,106.0
+2500,-1200.0,90.0
+2500,-900.0,78.0
+2500,-600.0,66.0
+2500,-400.0,58.0
+2500,-200.0,50.0
+2500,0.0,50.0
+2500,200.0,50.0
+2500,400.0,58.0
+2500,600.0,66.0
+2500,900.0,78.0
+2500,1200.0,90.0
+2500,1600.0,106.0
+2500,2000.0,122.0
+2500,2500.0,142.0
+2500,3000.0,162.0
+2500,3500.0,182.0
+2500,4000.0,202.0
+2500,4500.0,222.0
+2500,5000.0,242.0
+2500,5500.0,262.0
+3000,-5500.0,268.0
+3000,-5000.0,248.0
+3000,-4500.0,208.0
+3000,-4000.0,208.0
+3000,-3500.0,188.0
+3000,-3000.0,168.0
+3000,-2500.0,148.0
+3000,-2000.0,128.0
+3000,-1600.0,112.0
+3000,-1200.0,96.0
+3000,-900.0,84.0
+3000,-600.0,72.0
+3000,-400.0,64.0
+3000,-200.0,56.0
+3000,0.0,56.0
+3000,200.0,56.0
+3000,400.0,64.0
+3000,600.0,72.0
+3000,900.0,84.0
+3000,1200.0,96.0
+3000,1600.0,112.0
+3000,2000.0,128.0
+3000,2500.0,148.0
+3000,3000.0,168.0
+3000,3500.0,188.0
+3000,4000.0,208.0
+3000,4500.0,228.0
+3000,5000.0,248.0
+3000,5500.0,268.0
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_10kWh_658V.vbat b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_10kWh_658V.vbat
new file mode 100644
index 0000000000000000000000000000000000000000..b63cc3aad2ae9a38a3f3d17146b5db01390e99ac
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_10kWh_658V.vbat
@@ -0,0 +1,18 @@
+{
+  "Header": {
+    "CreatedBy": "",
+    "Date": "2020-09-07T15:28:30.2818342Z",
+    "AppVersion": "3",
+    "FileVersion": 1
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "Model": "Generic Battery",
+    "Capacity": 14.0,
+    "SOC_min": 20.0,
+    "SOC_max": 80.0,
+    "MaxCurrentMap": "MaxCurrent.vimax",
+    "InternalResistanceCurve": "GenericBattery_10kWh_658V.vbatr",
+    "SoCCurve": "GenericBattery_10kWh_658V.vbatv"
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_10kWh_658V.vbatr b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_10kWh_658V.vbatr
new file mode 100644
index 0000000000000000000000000000000000000000..09c936221ae38d84265ae27ba5542834d407026a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_10kWh_658V.vbatr
@@ -0,0 +1,3 @@
+SoC, Ri
+0,  0.12
+100,  0.12
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_10kWh_658V.vbatv b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_10kWh_658V.vbatv
new file mode 100644
index 0000000000000000000000000000000000000000..8063e04c9379cce6870b2d71c99807f0ee73c3fa
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_10kWh_658V.vbatv
@@ -0,0 +1,12 @@
+SOC, V
+0, 590 
+10, 614 
+20, 626 
+30, 632 
+40, 638 
+50, 640 
+60, 640 
+70, 642 
+80, 646 
+90, 650 
+100, 658
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_5kWh_320V.vbat b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_5kWh_320V.vbat
new file mode 100644
index 0000000000000000000000000000000000000000..2cd362149563bf8adf308f1f65321a72b71ad565
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_5kWh_320V.vbat
@@ -0,0 +1,18 @@
+{
+  "Header": {
+    "CreatedBy": "",
+    "Date": "2020-09-07T15:28:30.2818342Z",
+    "AppVersion": "3",
+    "FileVersion": 1
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "Model": "Generic Battery",
+    "Capacity": 8.0,
+    "SOC_min": 20.0,
+    "SOC_max": 80.0,
+    "MaxCurrentMap": "MaxCurrent_2.vimax",
+    "InternalResistanceCurve": "GenericBattery_5kWh_320V.vbatr",
+    "SoCCurve": "GenericBattery_5kWh_320V.vbatv"
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_5kWh_320V.vbatr b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_5kWh_320V.vbatr
new file mode 100644
index 0000000000000000000000000000000000000000..8bdb86c501e286e56667bdd17a81029d46c49086
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_5kWh_320V.vbatr
@@ -0,0 +1,3 @@
+SoC, Ri
+0,  0.08
+100,  0.08
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_5kWh_320V.vbatv b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_5kWh_320V.vbatv
new file mode 100644
index 0000000000000000000000000000000000000000..8d44a882d924ad6f5b3ff62567819b019ad214af
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericBattery_5kWh_320V.vbatv
@@ -0,0 +1,12 @@
+SOC, V
+0,288
+10,299
+20,306
+30,308
+40,309
+50,311
+60,312
+70,311
+80,313
+90,318
+100,321
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericDrag_140kW_936Nm.vemd b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericDrag_140kW_936Nm.vemd
new file mode 100644
index 0000000000000000000000000000000000000000..67d7db9f1b514dba9fc3fa4ec5650b00b9020faf
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericDrag_140kW_936Nm.vemd
@@ -0,0 +1,3 @@
+n [rpm] , T_drag [Nm]
+0       , -11.70
+4268.63    , -58.50
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericEMotor_140kW_900Nm.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericEMotor_140kW_900Nm.vemp
new file mode 100644
index 0000000000000000000000000000000000000000..dc507a3de87525ae3ff0d10ae580fd845bc3763f
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericEMotor_140kW_900Nm.vemp
@@ -0,0 +1,74 @@
+n [rpm] , T_drive [Nm] , T_drag [Nm]
+0,900,-900
+1485.446136,900,-900
+1480,900,-900
+1488.888889,897.93,-897.93
+1497.777778,892.5975,-892.5975
+1506.666667,887.3325,-887.3325
+1511.111111,884.7225,-884.7225
+1555.555556,859.4325,-859.4325
+1600,835.56,-835.56
+1644.444444,812.97,-812.97
+1688.888889,791.595,-791.595
+1733.333333,771.3,-771.3
+1777.777778,752.0175,-752.0175
+1822.222222,733.6575,-733.6575
+1866.666667,716.1975,-716.1975
+1911.111111,699.5475,-699.5475
+1955.555556,683.64,-683.64
+2000,668.4525,-668.4525
+2044.444444,653.9175,-653.9175
+2088.888889,640.0125,-640.0125
+2133.333333,626.67,-626.67
+2177.777778,613.89,-613.89
+2222.222222,601.605,-601.605
+2266.666667,589.815,-589.815
+2311.111111,578.475,-578.475
+2355.555556,567.5625,-567.5625
+2400,557.0325,-557.0325
+2444.444444,546.9075,-546.9075
+2488.888889,537.1425,-537.1425
+2533.333333,527.715,-527.715
+2577.777778,518.625,-518.625
+2622.222222,509.8275,-509.8275
+2666.666667,501.345,-501.345
+2711.111111,493.11,-493.11
+2755.555556,485.1675,-485.1675
+2800,477.4725,-477.4725
+2844.444444,470.0025,-470.0025
+2888.888889,462.78,-462.78
+2933.333333,455.76,-455.76
+2977.777778,448.965,-448.965
+3022.222222,442.35,-442.35
+3066.666667,435.9375,-435.9375
+3111.111111,429.7275,-429.7275
+3155.555556,423.675,-423.675
+3200,417.78,-417.78
+3244.444444,412.065,-412.065
+3288.888889,406.485,-406.485
+3333.333333,401.0625,-401.0625
+3377.777778,395.7975,-395.7975
+3422.222222,390.645,-390.645
+3466.666667,385.65,-385.65
+3511.111111,380.7675,-380.7675
+3555.555556,375.9975,-375.9975
+3600,371.3625,-371.3625
+3644.444444,366.84,-366.84
+3688.888889,362.4075,-362.4075
+3733.333333,358.0875,-358.0875
+3777.777778,353.88,-353.88
+3822.222222,349.7625,-349.7625
+3866.666667,345.7575,-345.7575
+3911.111111,341.82,-341.82
+3955.555556,337.9725,-337.9725
+4000,334.215,-334.215
+4044.444444,330.5475,-330.5475
+4088.888889,326.97,-326.97
+4133.333333,323.4375,-323.4375
+4177.777778,319.995,-319.995
+4222.222222,316.6425,-316.6425
+4266.666667,313.335,-313.335
+4311.111111,310.095,-310.095
+4355.555556,306.945,-306.945
+4400,303.84,-303.84
+4444.444444,300.8025,-300.8025
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericEMotor_140kW_936Nm.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericEMotor_140kW_936Nm.vem
new file mode 100644
index 0000000000000000000000000000000000000000..1825d547d27687c462ee0e1b78d4ec2fae74d51c
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericEMotor_140kW_936Nm.vem
@@ -0,0 +1,20 @@
+{
+  "Header": {
+    "CreatedBy": "",
+    "Date": "2020-10-09T08:18:42.8238326Z",
+    "AppVersion": "3",
+    "FileVersion": 1
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "Model": "Generic Electric Motor",
+    "FullLoadCurve": "GenericEMotor_140kW_900Nm.vemp",
+    "DragCurve": "GenericDrag_140kW_936Nm.vemd",
+    "EfficiencyMap": "GenericMap_140kW_936Nm.vemo",
+    "Inertia": 0.5,
+    "ContinuousPower": 500000.0,
+    "ContinuousPowerSpeed": 1500.0,
+    "OverloadTime": 30.0,
+    "ThermalOverloadRecoveryFactor": 0.9
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericMap_140kW_936Nm.vemo b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericMap_140kW_936Nm.vemo
new file mode 100644
index 0000000000000000000000000000000000000000..aaf978890c6fd20d74a852e50541bbc48c2933fb
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/GenericMap_140kW_936Nm.vemo
@@ -0,0 +1,2016 @@
+n [rpm] , T [Nm] , P_el [kW]
+0,-936,9.8449
+0,-906.75,9.2719
+0,-877.5,8.7161
+0,-848.25,8.1773
+0,-819,7.6558
+0,-789.75,7.1514
+0,-760.5,6.6641
+0,-731.25,6.194
+0,-702,5.741
+0,-672.75,5.3052
+0,-643.5,4.8866
+0,-614.25,4.4851
+0,-585,4.1007
+0,-555.75,3.7335
+0,-526.5,3.3834
+0,-497.25,3.0505
+0,-468,2.7348
+0,-438.75,2.4362
+0,-409.5,2.1547
+0,-380.25,1.8904
+0,-351,1.6433
+0,-321.75,1.4133
+0,-292.5,1.2004
+0,-263.25,1.0047
+0,-234,0.82617
+0,-204.75,0.66478
+0,-175.5,0.52053
+0,-146.25,0.39344
+0,-117,0.28349
+0,-87.75,0.1907
+0,-58.5,0.11506
+0,-29.25,0.056566
+0,0,0.0361
+0,29.25,0.086979
+0,58.5,0.15501
+0,87.75,0.24019
+0,117,0.34252
+0,146.25,0.462
+0,175.5,0.59864
+0,204.75,0.75242
+0,234,0.92335
+0,263.25,1.1114
+0,292.5,1.3167
+0,321.75,1.5391
+0,351,1.7786
+0,380.25,2.0353
+0,409.5,2.3091
+0,438.75,2.6001
+0,468,2.9083
+0,497.25,3.2336
+0,526.5,3.576
+0,555.75,3.9356
+0,585,4.3123
+0,614.25,4.7062
+0,643.5,5.1173
+0,672.75,5.5455
+0,702,5.9908
+0,731.25,6.4533
+0,760.5,6.933
+0,789.75,7.4298
+0,819,7.9437
+0,848.25,8.4748
+0,877.5,9.0231
+0,906.75,9.5885
+0,936,10.171
+40.80854701,-936,5.8367
+40.80854701,-906.75,5.3901
+40.80854701,-877.5,4.9606
+40.80854701,-848.25,4.5482
+40.80854701,-819,4.153
+40.80854701,-789.75,3.775
+40.80854701,-760.5,3.4141
+40.80854701,-731.25,3.0704
+40.80854701,-702,2.7438
+40.80854701,-672.75,2.4344
+40.80854701,-643.5,2.1421
+40.80854701,-614.25,1.8669
+40.80854701,-585,1.609
+40.80854701,-555.75,1.3681
+40.80854701,-526.5,1.1445
+40.80854701,-497.25,0.93793
+40.80854701,-468,0.74855
+40.80854701,-438.75,0.57729
+40.80854701,-409.5,0.4236
+40.80854701,-380.25,0.28766
+40.80854701,-351,0.16853
+40.80854701,-321.75,0.066217
+40.80854701,-292.5,-0.019286
+40.80854701,-263.25,-0.087979
+40.80854701,-234,-0.13986
+40.80854701,-204.75,-0.17493
+40.80854701,-175.5,-0.19319
+40.80854701,-146.25,-0.19464
+40.80854701,-117,-0.17927
+40.80854701,-87.75,-0.1471
+40.80854701,-58.5,-0.09811
+40.80854701,-29.25,-0.032313
+40.80854701,0,0.07245
+40.80854701,29.25,0.24971
+40.80854701,58.5,0.44411
+40.80854701,87.75,0.65567
+40.80854701,117,0.88437
+40.80854701,146.25,1.1302
+40.80854701,175.5,1.3932
+40.80854701,204.75,1.6734
+40.80854701,234,1.9707
+40.80854701,263.25,2.2852
+40.80854701,292.5,2.6168
+40.80854701,321.75,2.9655
+40.80854701,351,3.3315
+40.80854701,380.25,3.7145
+40.80854701,409.5,4.1147
+40.80854701,438.75,4.5321
+40.80854701,468,4.9666
+40.80854701,497.25,5.4183
+40.80854701,526.5,5.8871
+40.80854701,555.75,6.3731
+40.80854701,585,6.8762
+40.80854701,614.25,7.3965
+40.80854701,643.5,7.9339
+40.80854701,672.75,8.4885
+40.80854701,702,9.0602
+40.80854701,731.25,9.6491
+40.80854701,760.5,10.255
+40.80854701,789.75,10.878
+40.80854701,819,11.519
+40.80854701,848.25,12.176
+40.80854701,877.5,12.851
+40.80854701,906.75,13.542
+40.80854701,936,14.251
+81.61794872,-936,1.8303
+81.61794872,-906.75,1.5101
+81.61794872,-877.5,1.2075
+81.61794872,-848.25,0.92457
+81.61794872,-819,0.66034
+81.61794872,-789.75,0.41292
+81.61794872,-760.5,0.18231
+81.61794872,-731.25,-0.031493
+81.61794872,-702,-0.22848
+81.61794872,-672.75,-0.40866
+81.61794872,-643.5,-0.57202
+81.61794872,-614.25,-0.71858
+81.61794872,-585,-0.84832
+81.61794872,-555.75,-0.96125
+81.61794872,-526.5,-1.0574
+81.61794872,-497.25,-1.1367
+81.61794872,-468,-1.1992
+81.61794872,-438.75,-1.2449
+81.61794872,-409.5,-1.2737
+81.61794872,-380.25,-1.2858
+81.61794872,-351,-1.2811
+81.61794872,-321.75,-1.2595
+81.61794872,-292.5,-1.2211
+81.61794872,-263.25,-1.1659
+81.61794872,-234,-1.0939
+81.61794872,-204.75,-1.0051
+81.61794872,-175.5,-0.89953
+81.61794872,-146.25,-0.7771
+81.61794872,-117,-0.63787
+81.61794872,-87.75,-0.48182
+81.61794872,-58.5,-0.30896
+81.61794872,-29.25,-0.11929
+81.61794872,0,0.11065
+81.61794872,29.25,0.41428
+81.61794872,58.5,0.73507
+81.61794872,87.75,1.073
+81.61794872,117,1.4281
+81.61794872,146.25,1.8003
+81.61794872,175.5,2.1897
+81.61794872,204.75,2.5962
+81.61794872,234,3.0199
+81.61794872,263.25,3.4608
+81.61794872,292.5,3.9188
+81.61794872,321.75,4.3939
+81.61794872,351,4.8862
+81.61794872,380.25,5.3956
+81.61794872,409.5,5.9222
+81.61794872,438.75,6.466
+81.61794872,468,7.0269
+81.61794872,497.25,7.6049
+81.61794872,526.5,8.2001
+81.61794872,555.75,8.8124
+81.61794872,585,9.4419
+81.61794872,614.25,10.089
+81.61794872,643.5,10.752
+81.61794872,672.75,11.433
+81.61794872,702,12.131
+81.61794872,731.25,12.847
+81.61794872,760.5,13.579
+81.61794872,789.75,14.329
+81.61794872,819,15.095
+81.61794872,848.25,15.879
+81.61794872,877.5,16.68
+81.61794872,906.75,17.498
+81.61794872,936,18.334
+122.4273504,-936,-2.1071
+122.4273504,-906.75,-2.2979
+122.4273504,-877.5,-2.4719
+122.4273504,-848.25,-2.629
+122.4273504,-819,-2.7694
+122.4273504,-789.75,-2.8929
+122.4273504,-760.5,-2.9997
+122.4273504,-731.25,-3.0896
+122.4273504,-702,-3.1627
+122.4273504,-672.75,-3.219
+122.4273504,-643.5,-3.2585
+122.4273504,-614.25,-3.2812
+122.4273504,-585,-3.2871
+122.4273504,-555.75,-3.2761
+122.4273504,-526.5,-3.2484
+122.4273504,-497.25,-3.2038
+122.4273504,-468,-3.1424
+122.4273504,-438.75,-3.0642
+122.4273504,-409.5,-2.9692
+122.4273504,-380.25,-2.8574
+122.4273504,-351,-2.7288
+122.4273504,-321.75,-2.5834
+122.4273504,-292.5,-2.4211
+122.4273504,-263.25,-2.2421
+122.4273504,-234,-2.0462
+122.4273504,-204.75,-1.8335
+122.4273504,-175.5,-1.604
+122.4273504,-146.25,-1.3577
+122.4273504,-117,-1.0946
+122.4273504,-87.75,-0.81471
+122.4273504,-58.5,-0.51798
+122.4273504,-29.25,-0.20444
+122.4273504,0,0.15072
+122.4273504,29.25,0.58072
+122.4273504,58.5,1.0279
+122.4273504,87.75,1.4922
+122.4273504,117,1.9737
+122.4273504,146.25,2.4723
+122.4273504,175.5,2.988
+122.4273504,204.75,3.5209
+122.4273504,234,4.071
+122.4273504,263.25,4.6382
+122.4273504,292.5,5.2226
+122.4273504,321.75,5.8241
+122.4273504,351,6.4428
+122.4273504,380.25,7.0786
+122.4273504,409.5,7.7315
+122.4273504,438.75,8.4017
+122.4273504,468,9.0889
+122.4273504,497.25,9.7934
+122.4273504,526.5,10.515
+122.4273504,555.75,11.254
+122.4273504,585,12.01
+122.4273504,614.25,12.783
+122.4273504,643.5,13.573
+122.4273504,672.75,14.38
+122.4273504,702,15.205
+122.4273504,731.25,16.046
+122.4273504,760.5,16.905
+122.4273504,789.75,17.781
+122.4273504,819,18.674
+122.4273504,848.25,19.584
+122.4273504,877.5,20.512
+122.4273504,906.75,21.456
+122.4273504,936,22.418
+163.2393162,-936,-6.0305
+163.2393162,-906.75,-6.0974
+163.2393162,-877.5,-6.1475
+163.2393162,-848.25,-6.1808
+163.2393162,-819,-6.1973
+163.2393162,-789.75,-6.197
+163.2393162,-760.5,-6.1799
+163.2393162,-731.25,-6.1459
+163.2393162,-702,-6.0951
+163.2393162,-672.75,-6.0276
+163.2393162,-643.5,-5.9432
+163.2393162,-614.25,-5.842
+163.2393162,-585,-5.724
+163.2393162,-555.75,-5.5892
+163.2393162,-526.5,-5.4376
+163.2393162,-497.25,-5.2691
+163.2393162,-468,-5.0839
+163.2393162,-438.75,-4.8818
+163.2393162,-409.5,-4.6629
+163.2393162,-380.25,-4.4272
+163.2393162,-351,-4.1748
+163.2393162,-321.75,-3.9054
+163.2393162,-292.5,-3.6193
+163.2393162,-263.25,-3.3164
+163.2393162,-234,-2.9967
+163.2393162,-204.75,-2.6601
+163.2393162,-175.5,-2.3067
+163.2393162,-146.25,-1.9366
+163.2393162,-117,-1.5496
+163.2393162,-87.75,-1.1458
+163.2393162,-58.5,-0.72519
+163.2393162,-29.25,-0.28777
+163.2393162,0,0.19264
+163.2393162,29.25,0.74902
+163.2393162,58.5,1.3226
+163.2393162,87.75,1.9132
+163.2393162,117,2.5211
+163.2393162,146.25,3.1461
+163.2393162,175.5,3.7882
+163.2393162,204.75,4.4475
+163.2393162,234,5.1239
+163.2393162,263.25,5.8175
+163.2393162,292.5,6.5283
+163.2393162,321.75,7.2561
+163.2393162,351,8.0012
+163.2393162,380.25,8.7634
+163.2393162,409.5,9.5427
+163.2393162,438.75,10.339
+163.2393162,468,11.153
+163.2393162,497.25,11.984
+163.2393162,526.5,12.832
+163.2393162,555.75,13.697
+163.2393162,585,14.579
+163.2393162,614.25,15.478
+163.2393162,643.5,16.395
+163.2393162,672.75,17.329
+163.2393162,702,18.279
+163.2393162,731.25,19.247
+163.2393162,760.5,20.233
+163.2393162,789.75,21.235
+163.2393162,819,22.254
+163.2393162,848.25,23.291
+163.2393162,877.5,24.345
+163.2393162,906.75,25.416
+163.2393162,936,26.504
+204.042735,-936,-9.9521
+204.042735,-906.75,-9.8951
+204.042735,-877.5,-9.8214
+204.042735,-848.25,-9.7308
+204.042735,-819,-9.6234
+204.042735,-789.75,-9.4992
+204.042735,-760.5,-9.3582
+204.042735,-731.25,-9.2004
+204.042735,-702,-9.0258
+204.042735,-672.75,-8.8343
+204.042735,-643.5,-8.626
+204.042735,-614.25,-8.401
+204.042735,-585,-8.1591
+204.042735,-555.75,-7.9004
+204.042735,-526.5,-7.6249
+204.042735,-497.25,-7.3326
+204.042735,-468,-7.0235
+204.042735,-438.75,-6.6975
+204.042735,-409.5,-6.3548
+204.042735,-380.25,-5.9952
+204.042735,-351,-5.6189
+204.042735,-321.75,-5.2257
+204.042735,-292.5,-4.8157
+204.042735,-263.25,-4.3889
+204.042735,-234,-3.9453
+204.042735,-204.75,-3.4849
+204.042735,-175.5,-3.0076
+204.042735,-146.25,-2.5136
+204.042735,-117,-2.0027
+204.042735,-87.75,-1.475
+204.042735,-58.5,-0.93057
+204.042735,-29.25,-0.36928
+204.042735,0,0.23641
+204.042735,29.25,0.91917
+204.042735,58.5,1.6191
+204.042735,87.75,2.3361
+204.042735,117,3.0704
+204.042735,146.25,3.8217
+204.042735,175.5,4.5902
+204.042735,204.75,5.3759
+204.042735,234,6.1787
+204.042735,263.25,6.9987
+204.042735,292.5,7.8358
+204.042735,321.75,8.6901
+204.042735,351,9.5615
+204.042735,380.25,10.45
+204.042735,409.5,11.356
+204.042735,438.75,12.279
+204.042735,468,13.219
+204.042735,497.25,14.176
+204.042735,526.5,15.15
+204.042735,555.75,16.142
+204.042735,585,17.15
+204.042735,614.25,18.176
+204.042735,643.5,19.219
+204.042735,672.75,20.279
+204.042735,702,21.356
+204.042735,731.25,22.451
+204.042735,760.5,23.562
+204.042735,789.75,24.691
+204.042735,819,25.837
+204.042735,848.25,27
+204.042735,877.5,28.18
+204.042735,906.75,29.377
+204.042735,936,30.592
+244.8547009,-936,-13.872
+244.8547009,-906.75,-13.691
+244.8547009,-877.5,-13.493
+244.8547009,-848.25,-13.279
+244.8547009,-819,-13.048
+244.8547009,-789.75,-12.8
+244.8547009,-760.5,-12.535
+244.8547009,-731.25,-12.253
+244.8547009,-702,-11.955
+244.8547009,-672.75,-11.639
+244.8547009,-643.5,-11.307
+244.8547009,-614.25,-10.958
+244.8547009,-585,-10.592
+244.8547009,-555.75,-10.21
+244.8547009,-526.5,-9.8105
+244.8547009,-497.25,-9.3943
+244.8547009,-468,-8.9613
+244.8547009,-438.75,-8.5115
+244.8547009,-409.5,-8.0448
+244.8547009,-380.25,-7.5614
+244.8547009,-351,-7.0612
+244.8547009,-321.75,-6.5441
+244.8547009,-292.5,-6.0103
+244.8547009,-263.25,-5.4596
+244.8547009,-234,-4.8921
+244.8547009,-204.75,-4.3078
+244.8547009,-175.5,-3.7067
+244.8547009,-146.25,-3.0888
+244.8547009,-117,-2.454
+244.8547009,-87.75,-1.8025
+244.8547009,-58.5,-1.1341
+244.8547009,-29.25,-0.44896
+244.8547009,0,0.28205
+244.8547009,29.25,1.0912
+244.8547009,58.5,1.9175
+244.8547009,87.75,2.7609
+244.8547009,117,3.6215
+244.8547009,146.25,4.4992
+244.8547009,175.5,5.3941
+244.8547009,204.75,6.3062
+244.8547009,234,7.2354
+244.8547009,263.25,8.1817
+244.8547009,292.5,9.1452
+244.8547009,321.75,10.126
+244.8547009,351,11.124
+244.8547009,380.25,12.139
+244.8547009,409.5,13.171
+244.8547009,438.75,14.22
+244.8547009,468,15.286
+244.8547009,497.25,16.37
+244.8547009,526.5,17.471
+244.8547009,555.75,18.588
+244.8547009,585,19.723
+244.8547009,614.25,20.876
+244.8547009,643.5,22.045
+244.8547009,672.75,23.231
+244.8547009,702,24.435
+244.8547009,731.25,25.656
+244.8547009,760.5,26.894
+244.8547009,789.75,28.149
+244.8547009,819,29.421
+244.8547009,848.25,30.71
+244.8547009,877.5,32.017
+244.8547009,906.75,33.34
+244.8547009,936,34.681
+285.6666667,-936,-17.79
+285.6666667,-906.75,-17.485
+285.6666667,-877.5,-17.164
+285.6666667,-848.25,-16.825
+285.6666667,-819,-16.47
+285.6666667,-789.75,-16.098
+285.6666667,-760.5,-15.709
+285.6666667,-731.25,-15.304
+285.6666667,-702,-14.881
+285.6666667,-672.75,-14.442
+285.6666667,-643.5,-13.986
+285.6666667,-614.25,-13.513
+285.6666667,-585,-13.024
+285.6666667,-555.75,-12.517
+285.6666667,-526.5,-11.994
+285.6666667,-497.25,-11.454
+285.6666667,-468,-10.897
+285.6666667,-438.75,-10.324
+285.6666667,-409.5,-9.7331
+285.6666667,-380.25,-9.1258
+285.6666667,-351,-8.5016
+285.6666667,-321.75,-7.8607
+285.6666667,-292.5,-7.203
+285.6666667,-263.25,-6.5284
+285.6666667,-234,-5.8371
+285.6666667,-204.75,-5.1289
+285.6666667,-175.5,-4.4039
+285.6666667,-146.25,-3.6621
+285.6666667,-117,-2.9035
+285.6666667,-87.75,-2.1281
+285.6666667,-58.5,-1.3359
+285.6666667,-29.25,-0.52683
+285.6666667,0,0.32954
+285.6666667,29.25,1.2651
+285.6666667,58.5,2.2177
+285.6666667,87.75,3.1875
+285.6666667,117,4.1745
+285.6666667,146.25,5.1786
+285.6666667,175.5,6.1999
+285.6666667,204.75,7.2383
+285.6666667,234,8.2939
+285.6666667,263.25,9.3666
+285.6666667,292.5,10.456
+285.6666667,321.75,11.563
+285.6666667,351,12.688
+285.6666667,380.25,13.829
+285.6666667,409.5,14.987
+285.6666667,438.75,16.163
+285.6666667,468,17.356
+285.6666667,497.25,18.566
+285.6666667,526.5,19.793
+285.6666667,555.75,21.037
+285.6666667,585,22.298
+285.6666667,614.25,23.577
+285.6666667,643.5,24.873
+285.6666667,672.75,26.185
+285.6666667,702,27.515
+285.6666667,731.25,28.863
+285.6666667,760.5,30.227
+285.6666667,789.75,31.608
+285.6666667,819,33.007
+285.6666667,848.25,34.423
+285.6666667,877.5,35.856
+285.6666667,906.75,37.306
+285.6666667,936,38.773
+326.4700855,-936,-21.706
+326.4700855,-906.75,-21.277
+326.4700855,-877.5,-20.832
+326.4700855,-848.25,-20.37
+326.4700855,-819,-19.891
+326.4700855,-789.75,-19.395
+326.4700855,-760.5,-18.882
+326.4700855,-731.25,-18.353
+326.4700855,-702,-17.807
+326.4700855,-672.75,-17.244
+326.4700855,-643.5,-16.664
+326.4700855,-614.25,-16.067
+326.4700855,-585,-15.454
+326.4700855,-555.75,-14.823
+326.4700855,-526.5,-14.176
+326.4700855,-497.25,-13.512
+326.4700855,-468,-12.831
+326.4700855,-438.75,-12.134
+326.4700855,-409.5,-11.419
+326.4700855,-380.25,-10.688
+326.4700855,-351,-9.9403
+326.4700855,-321.75,-9.1755
+326.4700855,-292.5,-8.3939
+326.4700855,-263.25,-7.5955
+326.4700855,-234,-6.7802
+326.4700855,-204.75,-5.9482
+326.4700855,-175.5,-5.0993
+326.4700855,-146.25,-4.2337
+326.4700855,-117,-3.3512
+326.4700855,-87.75,-2.4519
+326.4700855,-58.5,-1.5358
+326.4700855,-29.25,-0.60288
+326.4700855,0,0.37889
+326.4700855,29.25,1.4408
+326.4700855,58.5,2.5198
+326.4700855,87.75,3.616
+326.4700855,117,4.7293
+326.4700855,146.25,5.8598
+326.4700855,175.5,7.0075
+326.4700855,204.75,8.1723
+326.4700855,234,9.3542
+326.4700855,263.25,10.553
+326.4700855,292.5,11.77
+326.4700855,321.75,13.003
+326.4700855,351,14.254
+326.4700855,380.25,15.521
+326.4700855,409.5,16.806
+326.4700855,438.75,18.108
+326.4700855,468,19.427
+326.4700855,497.25,20.764
+326.4700855,526.5,22.117
+326.4700855,555.75,23.488
+326.4700855,585,24.875
+326.4700855,614.25,26.28
+326.4700855,643.5,27.702
+326.4700855,672.75,29.141
+326.4700855,702,30.598
+326.4700855,731.25,32.071
+326.4700855,760.5,33.562
+326.4700855,789.75,35.07
+326.4700855,819,36.595
+326.4700855,848.25,38.137
+326.4700855,877.5,39.696
+326.4700855,906.75,41.273
+326.4700855,936,42.866
+367.2820513,-936,-25.62
+367.2820513,-906.75,-25.068
+367.2820513,-877.5,-24.499
+367.2820513,-848.25,-23.912
+367.2820513,-819,-23.31
+367.2820513,-789.75,-22.69
+367.2820513,-760.5,-22.053
+367.2820513,-731.25,-21.4
+367.2820513,-702,-20.73
+367.2820513,-672.75,-20.043
+367.2820513,-643.5,-19.339
+367.2820513,-614.25,-18.619
+367.2820513,-585,-17.881
+367.2820513,-555.75,-17.127
+367.2820513,-526.5,-16.356
+367.2820513,-497.25,-15.568
+367.2820513,-468,-14.764
+367.2820513,-438.75,-13.942
+367.2820513,-409.5,-13.104
+367.2820513,-380.25,-12.249
+367.2820513,-351,-11.377
+367.2820513,-321.75,-10.488
+367.2820513,-292.5,-9.583
+367.2820513,-263.25,-8.6607
+367.2820513,-234,-7.7216
+367.2820513,-204.75,-6.7657
+367.2820513,-175.5,-5.7929
+367.2820513,-146.25,-4.8034
+367.2820513,-117,-3.797
+367.2820513,-87.75,-2.7739
+367.2820513,-58.5,-1.7339
+367.2820513,-29.25,-0.67711
+367.2820513,0,0.4301
+367.2820513,29.25,1.6184
+367.2820513,58.5,2.8238
+367.2820513,87.75,4.0463
+367.2820513,117,5.2861
+367.2820513,146.25,6.5429
+367.2820513,175.5,7.8169
+367.2820513,204.75,9.1081
+367.2820513,234,10.416
+367.2820513,263.25,11.742
+367.2820513,292.5,13.085
+367.2820513,321.75,14.444
+367.2820513,351,15.821
+367.2820513,380.25,17.215
+367.2820513,409.5,18.627
+367.2820513,438.75,20.055
+367.2820513,468,21.5
+367.2820513,497.25,22.963
+367.2820513,526.5,24.443
+367.2820513,555.75,25.94
+367.2820513,585,27.454
+367.2820513,614.25,28.985
+367.2820513,643.5,30.534
+367.2820513,672.75,32.099
+367.2820513,702,33.682
+367.2820513,731.25,35.282
+367.2820513,760.5,36.899
+367.2820513,789.75,38.533
+367.2820513,819,40.185
+367.2820513,848.25,41.853
+367.2820513,877.5,43.539
+367.2820513,906.75,45.241
+367.2820513,936,46.961
+408.0854701,-936,-29.533
+408.0854701,-906.75,-28.856
+408.0854701,-877.5,-28.163
+408.0854701,-848.25,-27.453
+408.0854701,-819,-26.727
+408.0854701,-789.75,-25.983
+408.0854701,-760.5,-25.223
+408.0854701,-731.25,-24.445
+408.0854701,-702,-23.651
+408.0854701,-672.75,-22.841
+408.0854701,-643.5,-22.013
+408.0854701,-614.25,-21.169
+408.0854701,-585,-20.307
+408.0854701,-555.75,-19.429
+408.0854701,-526.5,-18.534
+408.0854701,-497.25,-17.623
+408.0854701,-468,-16.694
+408.0854701,-438.75,-15.749
+408.0854701,-409.5,-14.787
+408.0854701,-380.25,-13.808
+408.0854701,-351,-12.812
+408.0854701,-321.75,-11.8
+408.0854701,-292.5,-10.77
+408.0854701,-263.25,-9.7241
+408.0854701,-234,-8.6611
+408.0854701,-204.75,-7.5813
+408.0854701,-175.5,-6.4847
+408.0854701,-146.25,-5.3713
+408.0854701,-117,-4.2411
+408.0854701,-87.75,-3.094
+408.0854701,-58.5,-1.9302
+408.0854701,-29.25,-0.74951
+408.0854701,0,0.48317
+408.0854701,29.25,1.7978
+408.0854701,58.5,3.1296
+408.0854701,87.75,4.4785
+408.0854701,117,5.8446
+408.0854701,146.25,7.2279
+408.0854701,175.5,8.6283
+408.0854701,204.75,10.046
+408.0854701,234,11.481
+408.0854701,263.25,12.932
+408.0854701,292.5,14.401
+408.0854701,321.75,15.888
+408.0854701,351,17.391
+408.0854701,380.25,18.911
+408.0854701,409.5,20.449
+408.0854701,438.75,22.004
+408.0854701,468,23.576
+408.0854701,497.25,25.165
+408.0854701,526.5,26.771
+408.0854701,555.75,28.394
+408.0854701,585,30.035
+408.0854701,614.25,31.692
+408.0854701,643.5,33.367
+408.0854701,672.75,35.059
+408.0854701,702,36.768
+408.0854701,731.25,38.494
+408.0854701,760.5,40.238
+408.0854701,789.75,41.998
+408.0854701,819,43.776
+408.0854701,848.25,45.571
+408.0854701,877.5,47.383
+408.0854701,906.75,49.212
+408.0854701,936,51.058
+448.8974359,-936,-33.443
+448.8974359,-906.75,-32.643
+448.8974359,-877.5,-31.826
+448.8974359,-848.25,-30.992
+448.8974359,-819,-30.142
+448.8974359,-789.75,-29.274
+448.8974359,-760.5,-28.39
+448.8974359,-731.25,-27.489
+448.8974359,-702,-26.571
+448.8974359,-672.75,-25.636
+448.8974359,-643.5,-24.685
+448.8974359,-614.25,-23.717
+448.8974359,-585,-22.732
+448.8974359,-555.75,-21.73
+448.8974359,-526.5,-20.711
+448.8974359,-497.25,-19.675
+448.8974359,-468,-18.623
+448.8974359,-438.75,-17.554
+448.8974359,-409.5,-16.468
+448.8974359,-380.25,-15.365
+448.8974359,-351,-14.245
+448.8974359,-321.75,-13.109
+448.8974359,-292.5,-11.956
+448.8974359,-263.25,-10.786
+448.8974359,-234,-9.5988
+448.8974359,-204.75,-8.3951
+448.8974359,-175.5,-7.1747
+448.8974359,-146.25,-5.9374
+448.8974359,-117,-4.6833
+448.8974359,-87.75,-3.4124
+448.8974359,-58.5,-2.1246
+448.8974359,-29.25,-0.82009
+448.8974359,0,0.53809
+448.8974359,29.25,1.9791
+448.8974359,58.5,3.4373
+448.8974359,87.75,4.9126
+448.8974359,117,6.4051
+448.8974359,146.25,7.9147
+448.8974359,175.5,9.4414
+448.8974359,204.75,10.985
+448.8974359,234,12.546
+448.8974359,263.25,14.125
+448.8974359,292.5,15.72
+448.8974359,321.75,17.333
+448.8974359,351,18.962
+448.8974359,380.25,20.609
+448.8974359,409.5,22.273
+448.8974359,438.75,23.954
+448.8974359,468,25.652
+448.8974359,497.25,27.368
+448.8974359,526.5,29.1
+448.8974359,555.75,30.85
+448.8974359,585,32.617
+448.8974359,614.25,34.401
+448.8974359,643.5,36.202
+448.8974359,672.75,38.021
+448.8974359,702,39.856
+448.8974359,731.25,41.709
+448.8974359,760.5,43.579
+448.8974359,789.75,45.465
+448.8974359,819,47.37
+448.8974359,848.25,49.291
+448.8974359,877.5,51.229
+448.8974359,906.75,53.185
+448.8974359,936,55.157
+489.7094017,-936,-37.352
+489.7094017,-906.75,-36.428
+489.7094017,-877.5,-35.487
+489.7094017,-848.25,-34.53
+489.7094017,-819,-33.555
+489.7094017,-789.75,-32.564
+489.7094017,-760.5,-31.556
+489.7094017,-731.25,-30.531
+489.7094017,-702,-29.489
+489.7094017,-672.75,-28.43
+489.7094017,-643.5,-27.355
+489.7094017,-614.25,-26.263
+489.7094017,-585,-25.154
+489.7094017,-555.75,-24.028
+489.7094017,-526.5,-22.885
+489.7094017,-497.25,-21.726
+489.7094017,-468,-20.55
+489.7094017,-438.75,-19.357
+489.7094017,-409.5,-18.147
+489.7094017,-380.25,-16.92
+489.7094017,-351,-15.677
+489.7094017,-321.75,-14.416
+489.7094017,-292.5,-13.139
+489.7094017,-263.25,-11.845
+489.7094017,-234,-10.535
+489.7094017,-204.75,-9.2071
+489.7094017,-175.5,-7.8628
+489.7094017,-146.25,-6.5016
+489.7094017,-117,-5.1236
+489.7094017,-87.75,-3.7289
+489.7094017,-58.5,-2.3173
+489.7094017,-29.25,-0.88886
+489.7094017,0,0.59487
+489.7094017,29.25,2.1623
+489.7094017,58.5,3.7468
+489.7094017,87.75,5.3485
+489.7094017,117,6.9673
+489.7094017,146.25,8.6033
+489.7094017,175.5,10.256
+489.7094017,204.75,11.927
+489.7094017,234,13.614
+489.7094017,263.25,15.319
+489.7094017,292.5,17.041
+489.7094017,321.75,18.779
+489.7094017,351,20.536
+489.7094017,380.25,22.309
+489.7094017,409.5,24.099
+489.7094017,438.75,25.907
+489.7094017,468,27.731
+489.7094017,497.25,29.573
+489.7094017,526.5,31.432
+489.7094017,555.75,33.308
+489.7094017,585,35.201
+489.7094017,614.25,37.112
+489.7094017,643.5,39.039
+489.7094017,672.75,40.984
+489.7094017,702,42.946
+489.7094017,731.25,44.925
+489.7094017,760.5,46.921
+489.7094017,789.75,48.934
+489.7094017,819,50.965
+489.7094017,848.25,53.012
+489.7094017,877.5,55.077
+489.7094017,906.75,57.159
+489.7094017,936,59.258
+816.1794872,-936,-68.557
+816.1794872,-906.75,-66.642
+816.1794872,-877.5,-64.711
+816.1794872,-848.25,-62.762
+816.1794872,-819,-60.796
+816.1794872,-789.75,-58.814
+816.1794872,-760.5,-56.815
+816.1794872,-731.25,-54.799
+816.1794872,-702,-52.766
+816.1794872,-672.75,-50.717
+816.1794872,-643.5,-48.65
+816.1794872,-614.25,-46.567
+816.1794872,-585,-44.467
+816.1794872,-555.75,-42.35
+816.1794872,-526.5,-40.217
+816.1794872,-497.25,-38.066
+816.1794872,-468,-35.899
+816.1794872,-438.75,-33.715
+816.1794872,-409.5,-31.514
+816.1794872,-380.25,-29.297
+816.1794872,-351,-27.062
+816.1794872,-321.75,-24.811
+816.1794872,-292.5,-22.543
+816.1794872,-263.25,-20.258
+816.1794872,-234,-17.956
+816.1794872,-204.75,-15.638
+816.1794872,-175.5,-13.302
+816.1794872,-146.25,-10.95
+816.1794872,-117,-8.5812
+816.1794872,-87.75,-6.1954
+816.1794872,-58.5,-3.7928
+816.1794872,-29.25,-1.3734
+816.1794872,0,1.116
+816.1794872,29.25,3.6944
+816.1794872,58.5,6.29
+816.1794872,87.75,8.9027
+816.1794872,117,11.533
+816.1794872,146.25,14.18
+816.1794872,175.5,16.844
+816.1794872,204.75,19.525
+816.1794872,234,22.223
+816.1794872,263.25,24.939
+816.1794872,292.5,27.672
+816.1794872,321.75,30.422
+816.1794872,351,33.189
+816.1794872,380.25,35.973
+816.1794872,409.5,38.774
+816.1794872,438.75,41.593
+816.1794872,468,44.429
+816.1794872,497.25,47.281
+816.1794872,526.5,50.151
+816.1794872,555.75,53.038
+816.1794872,585,55.943
+816.1794872,614.25,58.864
+816.1794872,643.5,61.803
+816.1794872,672.75,64.758
+816.1794872,702,67.731
+816.1794872,731.25,70.721
+816.1794872,760.5,73.728
+816.1794872,789.75,76.753
+816.1794872,819,79.794
+816.1794872,848.25,82.853
+816.1794872,877.5,85.929
+816.1794872,906.75,89.022
+816.1794872,936,92.132
+1020.25641,-936,-88.002
+1020.25641,-906.75,-85.467
+1020.25641,-877.5,-82.916
+1020.25641,-848.25,-80.348
+1020.25641,-819,-77.763
+1020.25641,-789.75,-75.161
+1020.25641,-760.5,-72.543
+1020.25641,-731.25,-69.908
+1020.25641,-702,-67.255
+1020.25641,-672.75,-64.586
+1020.25641,-643.5,-61.901
+1020.25641,-614.25,-59.198
+1020.25641,-585,-56.479
+1020.25641,-555.75,-53.743
+1020.25641,-526.5,-50.99
+1020.25641,-497.25,-48.22
+1020.25641,-468,-45.433
+1020.25641,-438.75,-42.63
+1020.25641,-409.5,-39.81
+1020.25641,-380.25,-36.973
+1020.25641,-351,-34.119
+1020.25641,-321.75,-31.248
+1020.25641,-292.5,-28.361
+1020.25641,-263.25,-25.456
+1020.25641,-234,-22.535
+1020.25641,-204.75,-19.597
+1020.25641,-175.5,-16.643
+1020.25641,-146.25,-13.671
+1020.25641,-117,-10.683
+1020.25641,-87.75,-7.6778
+1020.25641,-58.5,-4.6558
+1020.25641,-29.25,-1.6171
+1020.25641,0,1.5021
+1020.25641,29.25,4.7124
+1020.25641,58.5,7.9398
+1020.25641,87.75,11.184
+1020.25641,117,14.446
+1020.25641,146.25,17.725
+1020.25641,175.5,21.021
+1020.25641,204.75,24.334
+1020.25641,234,27.665
+1020.25641,263.25,31.012
+1020.25641,292.5,34.377
+1020.25641,321.75,37.758
+1020.25641,351,41.157
+1020.25641,380.25,44.574
+1020.25641,409.5,48.007
+1020.25641,438.75,51.457
+1020.25641,468,54.925
+1020.25641,497.25,58.409
+1020.25641,526.5,61.911
+1020.25641,555.75,65.43
+1020.25641,585,68.966
+1020.25641,614.25,72.52
+1020.25641,643.5,76.09
+1020.25641,672.75,79.678
+1020.25641,702,83.282
+1020.25641,731.25,86.904
+1020.25641,760.5,90.543
+1020.25641,789.75,94.2
+1020.25641,819,97.873
+1020.25641,848.25,101.56
+1020.25641,877.5,105.27
+1020.25641,906.75,109
+1020.25641,936,112.74
+1224.273504,-936,-107.4
+1224.273504,-906.75,-104.25
+1224.273504,-877.5,-101.08
+1224.273504,-848.25,-97.888
+1224.273504,-819,-94.684
+1224.273504,-789.75,-91.463
+1224.273504,-760.5,-88.225
+1224.273504,-731.25,-84.97
+1224.273504,-702,-81.699
+1224.273504,-672.75,-78.411
+1224.273504,-643.5,-75.106
+1224.273504,-614.25,-71.784
+1224.273504,-585,-68.445
+1224.273504,-555.75,-65.089
+1224.273504,-526.5,-61.717
+1224.273504,-497.25,-58.328
+1224.273504,-468,-54.922
+1224.273504,-438.75,-51.499
+1224.273504,-409.5,-48.06
+1224.273504,-380.25,-44.603
+1224.273504,-351,-41.13
+1224.273504,-321.75,-37.64
+1224.273504,-292.5,-34.133
+1224.273504,-263.25,-30.61
+1224.273504,-234,-27.069
+1224.273504,-204.75,-23.512
+1224.273504,-175.5,-19.938
+1224.273504,-146.25,-16.347
+1224.273504,-117,-12.739
+1224.273504,-87.75,-9.1147
+1224.273504,-58.5,-5.4734
+1224.273504,-29.25,-1.8152
+1224.273504,0,1.9346
+1224.273504,29.25,5.7768
+1224.273504,58.5,9.6361
+1224.273504,87.75,13.513
+1224.273504,117,17.406
+1224.273504,146.25,21.317
+1224.273504,175.5,25.245
+1224.273504,204.75,29.19
+1224.273504,234,33.152
+1224.273504,263.25,37.131
+1224.273504,292.5,41.128
+1224.273504,321.75,45.142
+1224.273504,351,49.173
+1224.273504,380.25,53.22
+1224.273504,409.5,57.286
+1224.273504,438.75,61.368
+1224.273504,468,65.467
+1224.273504,497.25,69.584
+1224.273504,526.5,73.718
+1224.273504,555.75,77.868
+1224.273504,585,82.037
+1224.273504,614.25,86.222
+1224.273504,643.5,90.424
+1224.273504,672.75,94.644
+1224.273504,702,98.88
+1224.273504,731.25,103.13
+1224.273504,760.5,107.4
+1224.273504,789.75,111.69
+1224.273504,819,116
+1224.273504,848.25,120.32
+1224.273504,877.5,124.66
+1224.273504,906.75,129.02
+1224.273504,936,133.39
+1428.290598,-936,-126.75
+1428.290598,-906.75,-122.98
+1428.290598,-877.5,-119.19
+1428.290598,-848.25,-115.38
+1428.290598,-819,-111.56
+1428.290598,-789.75,-107.72
+1428.290598,-760.5,-103.86
+1428.290598,-731.25,-99.988
+1428.290598,-702,-96.097
+1428.290598,-672.75,-92.189
+1428.290598,-643.5,-88.265
+1428.290598,-614.25,-84.324
+1428.290598,-585,-80.366
+1428.290598,-555.75,-76.391
+1428.290598,-526.5,-72.399
+1428.290598,-497.25,-68.391
+1428.290598,-468,-64.365
+1428.290598,-438.75,-60.323
+1428.290598,-409.5,-56.264
+1428.290598,-380.25,-52.188
+1428.290598,-351,-48.096
+1428.290598,-321.75,-43.986
+1428.290598,-292.5,-39.86
+1428.290598,-263.25,-35.717
+1428.290598,-234,-31.557
+1428.290598,-204.75,-27.381
+1428.290598,-175.5,-23.187
+1428.290598,-146.25,-18.977
+1428.290598,-117,-14.75
+1428.290598,-87.75,-10.506
+1428.290598,-58.5,-6.2453
+1428.290598,-29.25,-1.9678
+1428.290598,0,2.4136
+1428.290598,29.25,6.8876
+1428.290598,58.5,11.379
+1428.290598,87.75,15.887
+1428.290598,117,20.413
+1428.290598,146.25,24.955
+1428.290598,175.5,29.515
+1428.290598,204.75,34.092
+1428.290598,234,38.686
+1428.290598,263.25,43.297
+1428.290598,292.5,47.926
+1428.290598,321.75,52.571
+1428.290598,351,57.234
+1428.290598,380.25,61.914
+1428.290598,409.5,66.611
+1428.290598,438.75,71.325
+1428.290598,468,76.056
+1428.290598,497.25,80.805
+1428.290598,526.5,85.57
+1428.290598,555.75,90.353
+1428.290598,585,95.153
+1428.290598,614.25,99.97
+1428.290598,643.5,104.8
+1428.290598,672.75,109.66
+1428.290598,702,114.52
+1428.290598,731.25,119.41
+1428.290598,760.5,124.31
+1428.290598,789.75,129.23
+1428.290598,819,134.17
+1428.290598,848.25,139.12
+1428.290598,877.5,144.1
+1428.290598,906.75,149.08
+1428.290598,936,154.09
+1632.393162,-936,-146.06
+1632.393162,-906.75,-141.67
+1632.393162,-877.5,-137.26
+1632.393162,-848.25,-132.83
+1632.393162,-819,-128.39
+1632.393162,-789.75,-123.93
+1632.393162,-760.5,-119.45
+1632.393162,-731.25,-114.96
+1632.393162,-702,-110.45
+1632.393162,-672.75,-105.92
+1632.393162,-643.5,-101.38
+1632.393162,-614.25,-96.818
+1632.393162,-585,-92.241
+1632.393162,-555.75,-87.646
+1632.393162,-526.5,-83.035
+1632.393162,-497.25,-78.407
+1632.393162,-468,-73.763
+1632.393162,-438.75,-69.101
+1632.393162,-409.5,-64.423
+1632.393162,-380.25,-59.728
+1632.393162,-351,-55.016
+1632.393162,-321.75,-50.287
+1632.393162,-292.5,-45.542
+1632.393162,-263.25,-40.779
+1632.393162,-234,-36
+1632.393162,-204.75,-31.204
+1632.393162,-175.5,-26.391
+1632.393162,-146.25,-21.562
+1632.393162,-117,-16.715
+1632.393162,-87.75,-11.852
+1632.393162,-58.5,-6.9718
+1632.393162,-29.25,-2.0749
+1632.393162,0,2.939
+1632.393162,29.25,8.0449
+1632.393162,58.5,13.168
+1632.393162,87.75,18.308
+1632.393162,117,23.466
+1632.393162,146.25,28.64
+1632.393162,175.5,33.832
+1632.393162,204.75,39.041
+1632.393162,234,44.267
+1632.393162,263.25,49.51
+1632.393162,292.5,54.77
+1632.393162,321.75,60.047
+1632.393162,351,65.342
+1632.393162,380.25,70.654
+1632.393162,409.5,75.983
+1632.393162,438.75,81.329
+1632.393162,468,86.692
+1632.393162,497.25,92.072
+1632.393162,526.5,97.47
+1632.393162,555.75,102.88
+1632.393162,585,108.32
+1632.393162,614.25,113.77
+1632.393162,643.5,119.23
+1632.393162,672.75,124.71
+1632.393162,702,130.21
+1632.393162,731.25,135.73
+1632.393162,760.5,141.27
+1632.393162,789.75,146.82
+1632.393162,819,152.39
+1632.393162,848.25,157.97
+1632.393162,877.5,163.58
+1632.393162,906.75,169.2
+1632.393162,936,174.84
+1836.410256,-936,-165.32
+1836.410256,-906.75,-160.31
+1836.410256,-877.5,-155.28
+1836.410256,-848.25,-150.24
+1836.410256,-819,-145.17
+1836.410256,-789.75,-140.1
+1836.410256,-760.5,-135
+1836.410256,-731.25,-129.89
+1836.410256,-702,-124.76
+1836.410256,-672.75,-119.61
+1836.410256,-643.5,-114.45
+1836.410256,-614.25,-109.27
+1836.410256,-585,-104.07
+1836.410256,-555.75,-98.857
+1836.410256,-526.5,-93.626
+1836.410256,-497.25,-88.379
+1836.410256,-468,-83.115
+1836.410256,-438.75,-77.834
+1836.410256,-409.5,-72.536
+1836.410256,-380.25,-67.222
+1836.410256,-351,-61.891
+1836.410256,-321.75,-56.542
+1836.410256,-292.5,-51.177
+1836.410256,-263.25,-45.796
+1836.410256,-234,-40.397
+1836.410256,-204.75,-34.982
+1836.410256,-175.5,-29.55
+1836.410256,-146.25,-24.101
+1836.410256,-117,-18.635
+1836.410256,-87.75,-13.152
+1836.410256,-58.5,-7.6528
+1836.410256,-29.25,-2.1365
+1836.410256,0,3.5108
+1836.410256,29.25,9.2486
+1836.410256,58.5,15.004
+1836.410256,87.75,20.776
+1836.410256,117,26.565
+1836.410256,146.25,32.371
+1836.410256,175.5,38.195
+1836.410256,204.75,44.036
+1836.410256,234,49.893
+1836.410256,263.25,55.768
+1836.410256,292.5,61.661
+1836.410256,321.75,67.57
+1836.410256,351,73.496
+1836.410256,380.25,79.44
+1836.410256,409.5,85.401
+1836.410256,438.75,91.379
+1836.410256,468,97.374
+1836.410256,497.25,103.39
+1836.410256,526.5,109.42
+1836.410256,555.75,115.46
+1836.410256,585,121.53
+1836.410256,614.25,127.61
+1836.410256,643.5,133.7
+1836.410256,672.75,139.82
+1836.410256,702,145.95
+1836.410256,731.25,152.1
+1836.410256,760.5,158.27
+1836.410256,789.75,164.45
+1836.410256,819,170.65
+1836.410256,848.25,176.87
+1836.410256,877.5,183.11
+1836.410256,906.75,189.36
+1836.410256,936,195.63
+2040.42735,-936,-184.54
+2040.42735,-906.75,-178.91
+2040.42735,-877.5,-173.26
+2040.42735,-848.25,-167.59
+2040.42735,-819,-161.91
+2040.42735,-789.75,-156.21
+2040.42735,-760.5,-150.5
+2040.42735,-731.25,-144.77
+2040.42735,-702,-139.02
+2040.42735,-672.75,-133.25
+2040.42735,-643.5,-127.47
+2040.42735,-614.25,-121.67
+2040.42735,-585,-115.85
+2040.42735,-555.75,-110.02
+2040.42735,-526.5,-104.17
+2040.42735,-497.25,-98.305
+2040.42735,-468,-92.421
+2040.42735,-438.75,-86.521
+2040.42735,-409.5,-80.604
+2040.42735,-380.25,-74.67
+2040.42735,-351,-68.72
+2040.42735,-321.75,-62.752
+2040.42735,-292.5,-56.768
+2040.42735,-263.25,-50.767
+2040.42735,-234,-44.749
+2040.42735,-204.75,-38.714
+2040.42735,-175.5,-32.662
+2040.42735,-146.25,-26.594
+2040.42735,-117,-20.509
+2040.42735,-87.75,-14.407
+2040.42735,-58.5,-8.2882
+2040.42735,-29.25,-2.1526
+2040.42735,0,4.1291
+2040.42735,29.25,10.499
+2040.42735,58.5,16.886
+2040.42735,87.75,23.29
+2040.42735,117,29.711
+2040.42735,146.25,36.149
+2040.42735,175.5,42.604
+2040.42735,204.75,49.077
+2040.42735,234,55.567
+2040.42735,263.25,62.074
+2040.42735,292.5,68.598
+2040.42735,321.75,75.139
+2040.42735,351,81.697
+2040.42735,380.25,88.273
+2040.42735,409.5,94.865
+2040.42735,438.75,101.48
+2040.42735,468,108.1
+2040.42735,497.25,114.75
+2040.42735,526.5,121.41
+2040.42735,555.75,128.09
+2040.42735,585,134.78
+2040.42735,614.25,141.49
+2040.42735,643.5,148.22
+2040.42735,672.75,154.97
+2040.42735,702,161.74
+2040.42735,731.25,168.52
+2040.42735,760.5,175.31
+2040.42735,789.75,182.13
+2040.42735,819,188.96
+2040.42735,848.25,195.81
+2040.42735,877.5,202.68
+2040.42735,906.75,209.56
+2040.42735,936,216.47
+2244.529915,-936,-203.71
+2244.529915,-906.75,-197.46
+2244.529915,-877.5,-191.19
+2244.529915,-848.25,-184.91
+2244.529915,-819,-178.61
+2244.529915,-789.75,-172.29
+2244.529915,-760.5,-165.95
+2244.529915,-731.25,-159.6
+2244.529915,-702,-153.23
+2244.529915,-672.75,-146.85
+2244.529915,-643.5,-140.45
+2244.529915,-614.25,-134.03
+2244.529915,-585,-127.59
+2244.529915,-555.75,-121.14
+2244.529915,-526.5,-114.67
+2244.529915,-497.25,-108.19
+2244.529915,-468,-101.68
+2244.529915,-438.75,-95.163
+2244.529915,-409.5,-88.626
+2244.529915,-380.25,-82.073
+2244.529915,-351,-75.503
+2244.529915,-321.75,-68.916
+2244.529915,-292.5,-62.313
+2244.529915,-263.25,-55.692
+2244.529915,-234,-49.055
+2244.529915,-204.75,-42.401
+2244.529915,-175.5,-35.73
+2244.529915,-146.25,-29.042
+2244.529915,-117,-22.338
+2244.529915,-87.75,-15.616
+2244.529915,-58.5,-8.8781
+2244.529915,-29.25,-2.1231
+2244.529915,0,4.7938
+2244.529915,29.25,11.795
+2244.529915,58.5,18.814
+2244.529915,87.75,25.85
+2244.529915,117,32.903
+2244.529915,146.25,39.973
+2244.529915,175.5,47.06
+2244.529915,204.75,54.165
+2244.529915,234,61.287
+2244.529915,263.25,68.425
+2244.529915,292.5,75.581
+2244.529915,321.75,82.754
+2244.529915,351,89.945
+2244.529915,380.25,97.152
+2244.529915,409.5,104.38
+2244.529915,438.75,111.62
+2244.529915,468,118.88
+2244.529915,497.25,126.15
+2244.529915,526.5,133.45
+2244.529915,555.75,140.76
+2244.529915,585,148.08
+2244.529915,614.25,155.43
+2244.529915,643.5,162.79
+2244.529915,672.75,170.17
+2244.529915,702,177.57
+2244.529915,731.25,184.98
+2244.529915,760.5,192.41
+2244.529915,789.75,199.86
+2244.529915,819,207.32
+2244.529915,848.25,214.8
+2244.529915,877.5,222.3
+2244.529915,906.75,229.82
+2244.529915,936,237.35
+2448.547009,-936,-222.84
+2448.547009,-906.75,-215.97
+2448.547009,-877.5,-209.08
+2448.547009,-848.25,-202.18
+2448.547009,-819,-195.25
+2448.547009,-789.75,-188.32
+2448.547009,-760.5,-181.36
+2448.547009,-731.25,-174.39
+2448.547009,-702,-167.4
+2448.547009,-672.75,-160.4
+2448.547009,-643.5,-153.38
+2448.547009,-614.25,-146.34
+2448.547009,-585,-139.29
+2448.547009,-555.75,-132.21
+2448.547009,-526.5,-125.13
+2448.547009,-497.25,-118.02
+2448.547009,-468,-110.9
+2448.547009,-438.75,-103.76
+2448.547009,-409.5,-96.603
+2448.547009,-380.25,-89.431
+2448.547009,-351,-82.241
+2448.547009,-321.75,-75.035
+2448.547009,-292.5,-67.812
+2448.547009,-263.25,-60.572
+2448.547009,-234,-53.315
+2448.547009,-204.75,-46.042
+2448.547009,-175.5,-38.752
+2448.547009,-146.25,-31.445
+2448.547009,-117,-24.121
+2448.547009,-87.75,-16.78
+2448.547009,-58.5,-9.4225
+2448.547009,-29.25,-2.0481
+2448.547009,0,5.505
+2448.547009,29.25,13.138
+2448.547009,58.5,20.789
+2448.547009,87.75,28.457
+2448.547009,117,36.142
+2448.547009,146.25,43.844
+2448.547009,175.5,51.563
+2448.547009,204.75,59.299
+2448.547009,234,67.053
+2448.547009,263.25,74.823
+2448.547009,292.5,82.611
+2448.547009,321.75,90.416
+2448.547009,351,98.238
+2448.547009,380.25,106.08
+2448.547009,409.5,113.93
+2448.547009,438.75,121.81
+2448.547009,468,129.7
+2448.547009,497.25,137.61
+2448.547009,526.5,145.53
+2448.547009,555.75,153.47
+2448.547009,585,161.43
+2448.547009,614.25,169.41
+2448.547009,643.5,177.4
+2448.547009,672.75,185.41
+2448.547009,702,193.44
+2448.547009,731.25,201.49
+2448.547009,760.5,209.55
+2448.547009,789.75,217.63
+2448.547009,819,225.72
+2448.547009,848.25,233.84
+2448.547009,877.5,241.97
+2448.547009,906.75,250.12
+2448.547009,936,258.28
+2652.564103,-936,-241.92
+2652.564103,-906.75,-234.43
+2652.564103,-877.5,-226.92
+2652.564103,-848.25,-219.4
+2652.564103,-819,-211.86
+2652.564103,-789.75,-204.3
+2652.564103,-760.5,-196.73
+2652.564103,-731.25,-189.14
+2652.564103,-702,-181.53
+2652.564103,-672.75,-173.91
+2652.564103,-643.5,-166.27
+2652.564103,-614.25,-158.61
+2652.564103,-585,-150.93
+2652.564103,-555.75,-143.24
+2652.564103,-526.5,-135.53
+2652.564103,-497.25,-127.81
+2652.564103,-468,-120.07
+2652.564103,-438.75,-112.31
+2652.564103,-409.5,-104.53
+2652.564103,-380.25,-96.743
+2652.564103,-351,-88.934
+2652.564103,-321.75,-81.108
+2652.564103,-292.5,-73.266
+2652.564103,-263.25,-65.407
+2652.564103,-234,-57.531
+2652.564103,-204.75,-49.638
+2652.564103,-175.5,-41.728
+2652.564103,-146.25,-33.802
+2652.564103,-117,-25.858
+2652.564103,-87.75,-17.898
+2652.564103,-58.5,-9.9213
+2652.564103,-29.25,-1.9276
+2652.564103,0,6.2626
+2652.564103,29.25,14.528
+2652.564103,58.5,22.81
+2652.564103,87.75,31.11
+2652.564103,117,39.427
+2652.564103,146.25,47.761
+2652.564103,175.5,56.112
+2652.564103,204.75,64.48
+2652.564103,234,72.865
+2652.564103,263.25,81.268
+2652.564103,292.5,89.688
+2652.564103,321.75,98.125
+2652.564103,351,106.58
+2652.564103,380.25,115.05
+2652.564103,409.5,123.54
+2652.564103,438.75,132.04
+2652.564103,468,140.57
+2652.564103,497.25,149.11
+2652.564103,526.5,157.66
+2652.564103,555.75,166.24
+2652.564103,585,174.83
+2652.564103,614.25,183.44
+2652.564103,643.5,192.06
+2652.564103,672.75,200.7
+2652.564103,702,209.36
+2652.564103,731.25,218.04
+2652.564103,760.5,226.74
+2652.564103,789.75,235.45
+2652.564103,819,244.17
+2652.564103,848.25,252.92
+2652.564103,877.5,261.68
+2652.564103,906.75,270.46
+2652.564103,936,279.26
+2856.666667,-936,-260.95
+2856.666667,-906.75,-252.84
+2856.666667,-877.5,-244.72
+2856.666667,-848.25,-236.57
+2856.666667,-819,-228.41
+2856.666667,-789.75,-220.24
+2856.666667,-760.5,-212.05
+2856.666667,-731.25,-203.84
+2856.666667,-702,-195.61
+2856.666667,-672.75,-187.37
+2856.666667,-643.5,-179.11
+2856.666667,-614.25,-170.83
+2856.666667,-585,-162.54
+2856.666667,-555.75,-154.22
+2856.666667,-526.5,-145.9
+2856.666667,-497.25,-137.55
+2856.666667,-468,-129.19
+2856.666667,-438.75,-120.81
+2856.666667,-409.5,-112.42
+2856.666667,-380.25,-104.01
+2856.666667,-351,-95.581
+2856.666667,-321.75,-87.136
+2856.666667,-292.5,-78.674
+2856.666667,-263.25,-70.195
+2856.666667,-234,-61.7
+2856.666667,-204.75,-53.188
+2856.666667,-175.5,-44.659
+2856.666667,-146.25,-36.113
+2856.666667,-117,-27.55
+2856.666667,-87.75,-18.971
+2856.666667,-58.5,-10.375
+2856.666667,-29.25,-1.7616
+2856.666667,0,7.0667
+2856.666667,29.25,15.964
+2856.666667,58.5,24.878
+2856.666667,87.75,33.81
+2856.666667,117,42.758
+2856.666667,146.25,51.724
+2856.666667,175.5,60.707
+2856.666667,204.75,69.707
+2856.666667,234,78.725
+2856.666667,263.25,87.759
+2856.666667,292.5,96.811
+2856.666667,321.75,105.88
+2856.666667,351,114.97
+2856.666667,380.25,124.07
+2856.666667,409.5,133.19
+2856.666667,438.75,142.33
+2856.666667,468,151.48
+2856.666667,497.25,160.65
+2856.666667,526.5,169.84
+2856.666667,555.75,179.05
+2856.666667,585,188.27
+2856.666667,614.25,197.51
+2856.666667,643.5,206.77
+2856.666667,672.75,216.04
+2856.666667,702,225.33
+2856.666667,731.25,234.64
+2856.666667,760.5,243.97
+2856.666667,789.75,253.31
+2856.666667,819,262.67
+2856.666667,848.25,272.05
+2856.666667,877.5,281.44
+2856.666667,906.75,290.86
+2856.666667,936,300.28
+3060.683761,-936,-279.94
+3060.683761,-906.75,-271.21
+3060.683761,-877.5,-262.47
+3060.683761,-848.25,-253.7
+3060.683761,-819,-244.93
+3060.683761,-789.75,-236.13
+3060.683761,-760.5,-227.32
+3060.683761,-731.25,-218.49
+3060.683761,-702,-209.64
+3060.683761,-672.75,-200.78
+3060.683761,-643.5,-191.9
+3060.683761,-614.25,-183
+3060.683761,-585,-174.09
+3060.683761,-555.75,-165.16
+3060.683761,-526.5,-156.22
+3060.683761,-497.25,-147.25
+3060.683761,-468,-138.27
+3060.683761,-438.75,-129.27
+3060.683761,-409.5,-120.26
+3060.683761,-380.25,-111.23
+3060.683761,-351,-102.18
+3060.683761,-321.75,-93.118
+3060.683761,-292.5,-84.037
+3060.683761,-263.25,-74.939
+3060.683761,-234,-65.824
+3060.683761,-204.75,-56.693
+3060.683761,-175.5,-47.544
+3060.683761,-146.25,-38.379
+3060.683761,-117,-29.197
+3060.683761,-87.75,-19.998
+3060.683761,-58.5,-10.782
+3060.683761,-29.25,-1.55
+3060.683761,0,7.9172
+3060.683761,29.25,17.446
+3060.683761,58.5,26.993
+3060.683761,87.75,36.556
+3060.683761,117,46.136
+3060.683761,146.25,55.734
+3060.683761,175.5,65.349
+3060.683761,204.75,74.981
+3060.683761,234,84.63
+3060.683761,263.25,94.296
+3060.683761,292.5,103.98
+3060.683761,321.75,113.68
+3060.683761,351,123.4
+3060.683761,380.25,133.13
+3060.683761,409.5,142.89
+3060.683761,438.75,152.65
+3060.683761,468,162.44
+3060.683761,497.25,172.24
+3060.683761,526.5,182.06
+3060.683761,555.75,191.9
+3060.683761,585,201.76
+3060.683761,614.25,211.63
+3060.683761,643.5,221.52
+3060.683761,672.75,231.43
+3060.683761,702,241.35
+3060.683761,731.25,251.29
+3060.683761,760.5,261.25
+3060.683761,789.75,271.22
+3060.683761,819,281.21
+3060.683761,848.25,291.22
+3060.683761,877.5,301.25
+3060.683761,906.75,311.29
+3060.683761,936,321.35
+3264.700855,-936,-298.88
+3264.700855,-906.75,-289.53
+3264.700855,-877.5,-280.17
+3264.700855,-848.25,-270.79
+3264.700855,-819,-261.39
+3264.700855,-789.75,-251.98
+3264.700855,-760.5,-242.54
+3264.700855,-731.25,-233.1
+3264.700855,-702,-223.63
+3264.700855,-672.75,-214.15
+3264.700855,-643.5,-204.65
+3264.700855,-614.25,-195.14
+3264.700855,-585,-185.6
+3264.700855,-555.75,-176.05
+3264.700855,-526.5,-166.49
+3264.700855,-497.25,-156.9
+3264.700855,-468,-147.3
+3264.700855,-438.75,-137.69
+3264.700855,-409.5,-128.06
+3264.700855,-380.25,-118.41
+3264.700855,-351,-108.74
+3264.700855,-321.75,-99.055
+3264.700855,-292.5,-89.354
+3264.700855,-263.25,-79.637
+3264.700855,-234,-69.903
+3264.700855,-204.75,-60.152
+3264.700855,-175.5,-50.384
+3264.700855,-146.25,-40.599
+3264.700855,-117,-30.798
+3264.700855,-87.75,-20.98
+3264.700855,-58.5,-11.145
+3264.700855,-29.25,-1.2929
+3264.700855,0,8.8141
+3264.700855,29.25,18.975
+3264.700855,58.5,29.153
+3264.700855,87.75,39.348
+3264.700855,117,49.561
+3264.700855,146.25,59.79
+3264.700855,175.5,70.037
+3264.700855,204.75,80.301
+3264.700855,234,90.582
+3264.700855,263.25,100.88
+3264.700855,292.5,111.2
+3264.700855,321.75,121.53
+3264.700855,351,131.88
+3264.700855,380.25,142.24
+3264.700855,409.5,152.63
+3264.700855,438.75,163.03
+3264.700855,468,173.45
+3264.700855,497.25,183.88
+3264.700855,526.5,194.34
+3264.700855,555.75,204.81
+3264.700855,585,215.29
+3264.700855,614.25,225.8
+3264.700855,643.5,236.32
+3264.700855,672.75,246.86
+3264.700855,702,257.41
+3264.700855,731.25,267.98
+3264.700855,760.5,278.57
+3264.700855,789.75,289.18
+3264.700855,819,299.8
+3264.700855,848.25,310.45
+3264.700855,877.5,321.1
+3264.700855,906.75,331.78
+3264.700855,936,342.47
+3468.803419,-936,-317.78
+3468.803419,-906.75,-307.81
+3468.803419,-877.5,-297.83
+3468.803419,-848.25,-287.83
+3468.803419,-819,-277.81
+3468.803419,-789.75,-267.78
+3468.803419,-760.5,-257.73
+3468.803419,-731.25,-247.66
+3468.803419,-702,-237.57
+3468.803419,-672.75,-227.47
+3468.803419,-643.5,-217.35
+3468.803419,-614.25,-207.22
+3468.803419,-585,-197.07
+3468.803419,-555.75,-186.9
+3468.803419,-526.5,-176.71
+3468.803419,-497.25,-166.51
+3468.803419,-468,-156.29
+3468.803419,-438.75,-146.06
+3468.803419,-409.5,-135.8
+3468.803419,-380.25,-125.53
+3468.803419,-351,-115.25
+3468.803419,-321.75,-104.95
+3468.803419,-292.5,-94.626
+3468.803419,-263.25,-84.289
+3468.803419,-234,-73.936
+3468.803419,-204.75,-63.565
+3468.803419,-175.5,-53.178
+3468.803419,-146.25,-42.774
+3468.803419,-117,-32.353
+3468.803419,-87.75,-21.916
+3468.803419,-58.5,-11.462
+3468.803419,-29.25,-0.99032
+3468.803419,0,9.7575
+3468.803419,29.25,20.55
+3468.803419,58.5,31.36
+3468.803419,87.75,42.188
+3468.803419,117,53.032
+3468.803419,146.25,63.893
+3468.803419,175.5,74.772
+3468.803419,204.75,85.668
+3468.803419,234,96.581
+3468.803419,263.25,107.51
+3468.803419,292.5,118.46
+3468.803419,321.75,129.42
+3468.803419,351,140.4
+3468.803419,380.25,151.4
+3468.803419,409.5,162.42
+3468.803419,438.75,173.45
+3468.803419,468,184.5
+3468.803419,497.25,195.57
+3468.803419,526.5,206.65
+3468.803419,555.75,217.75
+3468.803419,585,228.87
+3468.803419,614.25,240.01
+3468.803419,643.5,251.16
+3468.803419,672.75,262.33
+3468.803419,702,273.52
+3468.803419,731.25,284.72
+3468.803419,760.5,295.95
+3468.803419,789.75,307.18
+3468.803419,819,318.44
+3468.803419,848.25,329.71
+3468.803419,877.5,341
+3468.803419,906.75,352.31
+3468.803419,936,363.64
+3672.820513,-936,-336.63
+3672.820513,-906.75,-326.05
+3672.820513,-877.5,-315.44
+3672.820513,-848.25,-304.82
+3672.820513,-819,-294.19
+3672.820513,-789.75,-283.53
+3672.820513,-760.5,-272.86
+3672.820513,-731.25,-262.18
+3672.820513,-702,-251.47
+3672.820513,-672.75,-240.75
+3672.820513,-643.5,-230.01
+3672.820513,-614.25,-219.26
+3672.820513,-585,-208.49
+3672.820513,-555.75,-197.7
+3672.820513,-526.5,-186.9
+3672.820513,-497.25,-176.07
+3672.820513,-468,-165.24
+3672.820513,-438.75,-154.38
+3672.820513,-409.5,-143.51
+3672.820513,-380.25,-132.62
+3672.820513,-351,-121.71
+3672.820513,-321.75,-110.79
+3672.820513,-292.5,-99.852
+3672.820513,-263.25,-88.896
+3672.820513,-234,-77.923
+3672.820513,-204.75,-66.933
+3672.820513,-175.5,-55.927
+3672.820513,-146.25,-44.904
+3672.820513,-117,-33.863
+3672.820513,-87.75,-22.806
+3672.820513,-58.5,-11.733
+3672.820513,-29.25,-0.64219
+3672.820513,0,10.747
+3672.820513,29.25,22.172
+3672.820513,58.5,33.614
+3672.820513,87.75,45.073
+3672.820513,117,56.549
+3672.820513,146.25,68.043
+3672.820513,175.5,79.553
+3672.820513,204.75,91.081
+3672.820513,234,102.63
+3672.820513,263.25,114.19
+3672.820513,292.5,125.77
+3672.820513,321.75,137.36
+3672.820513,351,148.98
+3672.820513,380.25,160.61
+3672.820513,409.5,172.25
+3672.820513,438.75,183.92
+3672.820513,468,195.6
+3672.820513,497.25,207.3
+3672.820513,526.5,219.02
+3672.820513,555.75,230.75
+3672.820513,585,242.5
+3672.820513,614.25,254.27
+3672.820513,643.5,266.05
+3672.820513,672.75,277.86
+3672.820513,702,289.67
+3672.820513,731.25,301.51
+3672.820513,760.5,313.36
+3672.820513,789.75,325.23
+3672.820513,819,337.12
+3672.820513,848.25,349.03
+3672.820513,877.5,360.95
+3672.820513,906.75,372.89
+3672.820513,936,384.85
+3876.837607,-936,-355.44
+3876.837607,-906.75,-344.23
+3876.837607,-877.5,-333.01
+3876.837607,-848.25,-321.77
+3876.837607,-819,-310.52
+3876.837607,-789.75,-299.24
+3876.837607,-760.5,-287.95
+3876.837607,-731.25,-276.65
+3876.837607,-702,-265.32
+3876.837607,-672.75,-253.98
+3876.837607,-643.5,-242.63
+3876.837607,-614.25,-231.25
+3876.837607,-585,-219.86
+3876.837607,-555.75,-208.45
+3876.837607,-526.5,-197.03
+3876.837607,-497.25,-185.59
+3876.837607,-468,-174.13
+3876.837607,-438.75,-162.66
+3876.837607,-409.5,-151.17
+3876.837607,-380.25,-139.66
+3876.837607,-351,-128.13
+3876.837607,-321.75,-116.59
+3876.837607,-292.5,-105.03
+3876.837607,-263.25,-93.457
+3876.837607,-234,-81.865
+3876.837607,-204.75,-70.256
+3876.837607,-175.5,-58.63
+3876.837607,-146.25,-46.987
+3876.837607,-117,-35.328
+3876.837607,-87.75,-23.652
+3876.837607,-58.5,-11.958
+3876.837607,-29.25,-0.24855
+3876.837607,0,11.784
+3876.837607,29.25,23.84
+3876.837607,58.5,35.914
+3876.837607,87.75,48.005
+3876.837607,117,60.113
+3876.837607,146.25,72.238
+3876.837607,175.5,84.381
+3876.837607,204.75,96.54
+3876.837607,234,108.72
+3876.837607,263.25,120.91
+3876.837607,292.5,133.12
+3876.837607,321.75,145.35
+3876.837607,351,157.59
+3876.837607,380.25,169.86
+3876.837607,409.5,182.14
+3876.837607,438.75,194.43
+3876.837607,468,206.75
+3876.837607,497.25,219.08
+3876.837607,526.5,231.43
+3876.837607,555.75,243.79
+3876.837607,585,256.17
+3876.837607,614.25,268.57
+3876.837607,643.5,280.99
+3876.837607,672.75,293.42
+3876.837607,702,305.88
+3876.837607,731.25,318.34
+3876.837607,760.5,330.83
+3876.837607,789.75,343.33
+3876.837607,819,355.85
+3876.837607,848.25,368.39
+3876.837607,877.5,380.94
+3876.837607,906.75,393.51
+3876.837607,936,406.1
+4080.854701,-936,-374.2
+4080.854701,-906.75,-362.38
+4080.854701,-877.5,-350.53
+4080.854701,-848.25,-338.67
+4080.854701,-819,-326.8
+4080.854701,-789.75,-314.91
+4080.854701,-760.5,-303
+4080.854701,-731.25,-291.07
+4080.854701,-702,-279.13
+4080.854701,-672.75,-267.17
+4080.854701,-643.5,-255.19
+4080.854701,-614.25,-243.2
+4080.854701,-585,-231.19
+4080.854701,-555.75,-219.16
+4080.854701,-526.5,-207.12
+4080.854701,-497.25,-195.06
+4080.854701,-468,-182.98
+4080.854701,-438.75,-170.89
+4080.854701,-409.5,-158.78
+4080.854701,-380.25,-146.65
+4080.854701,-351,-134.51
+4080.854701,-321.75,-122.35
+4080.854701,-292.5,-110.17
+4080.854701,-263.25,-97.973
+4080.854701,-234,-85.761
+4080.854701,-204.75,-73.533
+4080.854701,-175.5,-61.288
+4080.854701,-146.25,-49.026
+4080.854701,-117,-36.747
+4080.854701,-87.75,-24.451
+4080.854701,-58.5,-12.139
+4080.854701,-29.25,0.19499
+4080.854701,0,12.866
+4080.854701,29.25,25.555
+4080.854701,58.5,38.26
+4080.854701,87.75,50.983
+4080.854701,117,63.723
+4080.854701,146.25,76.48
+4080.854701,175.5,89.255
+4080.854701,204.75,102.05
+4080.854701,234,114.85
+4080.854701,263.25,127.68
+4080.854701,292.5,140.52
+4080.854701,321.75,153.38
+4080.854701,351,166.26
+4080.854701,380.25,179.15
+4080.854701,409.5,192.07
+4080.854701,438.75,204.99
+4080.854701,468,217.94
+4080.854701,497.25,230.9
+4080.854701,526.5,243.88
+4080.854701,555.75,256.88
+4080.854701,585,269.89
+4080.854701,614.25,282.93
+4080.854701,643.5,295.97
+4080.854701,672.75,309.04
+4080.854701,702,322.12
+4080.854701,731.25,335.22
+4080.854701,760.5,348.34
+4080.854701,789.75,361.48
+4080.854701,819,374.63
+4080.854701,848.25,387.8
+4080.854701,877.5,400.98
+4080.854701,906.75,414.18
+4080.854701,936,427.4
+4268.632479,-936,-391.42
+4268.632479,-906.75,-379.03
+4268.632479,-877.5,-366.61
+4268.632479,-848.25,-354.19
+4268.632479,-819,-341.74
+4268.632479,-789.75,-329.28
+4268.632479,-760.5,-316.8
+4268.632479,-731.25,-304.3
+4268.632479,-702,-291.79
+4268.632479,-672.75,-279.26
+4268.632479,-643.5,-266.72
+4268.632479,-614.25,-254.15
+4268.632479,-585,-241.57
+4268.632479,-555.75,-228.98
+4268.632479,-526.5,-216.36
+4268.632479,-497.25,-203.73
+4268.632479,-468,-191.09
+4268.632479,-438.75,-178.42
+4268.632479,-409.5,-165.74
+4268.632479,-380.25,-153.04
+4268.632479,-351,-140.33
+4268.632479,-321.75,-127.6
+4268.632479,-292.5,-114.85
+4268.632479,-263.25,-102.09
+4268.632479,-234,-89.306
+4268.632479,-204.75,-76.508
+4268.632479,-175.5,-63.693
+4268.632479,-146.25,-50.861
+4268.632479,-117,-38.012
+4268.632479,-87.75,-25.147
+4268.632479,-58.5,-12.264
+4268.632479,-29.25,0.65077
+4268.632479,0,13.903
+4268.632479,29.25,27.173
+4268.632479,58.5,40.46
+4268.632479,87.75,53.764
+4268.632479,117,67.086
+4268.632479,146.25,80.424
+4268.632479,175.5,93.78
+4268.632479,204.75,107.15
+4268.632479,234,120.54
+4268.632479,263.25,133.95
+4268.632479,292.5,147.37
+4268.632479,321.75,160.81
+4268.632479,351,174.27
+4268.632479,380.25,187.75
+4268.632479,409.5,201.24
+4268.632479,438.75,214.75
+4268.632479,468,228.28
+4268.632479,497.25,241.82
+4268.632479,526.5,255.38
+4268.632479,555.75,268.96
+4268.632479,585,282.56
+4268.632479,614.25,296.17
+4268.632479,643.5,309.8
+4268.632479,672.75,323.45
+4268.632479,702,337.11
+4268.632479,731.25,350.79
+4268.632479,760.5,364.49
+4268.632479,789.75,378.21
+4268.632479,819,391.94
+4268.632479,848.25,405.69
+4268.632479,877.5,419.46
+4268.632479,906.75,433.24
+4268.632479,936,447.04
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Group5_HEV.vveh b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Group5_HEV.vveh
new file mode 100644
index 0000000000000000000000000000000000000000..a9621a287dd2a35e8501d1e9dfad06cdc0ad40b5
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Group5_HEV.vveh
@@ -0,0 +1,117 @@
+{
+  "Header": {
+    "CreatedBy": "",
+    "Date": "2021-07-13T16:04:17.8328273Z",
+    "AppVersion": "3",
+    "FileVersion": 10
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "VehCat": "Tractor",
+    "LegislativeClass": "Unknown",
+    "CurbWeight": 8229.0,
+    "CurbWeightExtra": 7500.0,
+    "MassMax": 18.0,
+    "Loading": 19300.0,
+    "rdyn": 492.0,
+    "CdCorrMode": "CdofVdecl",
+    "CdCorrFile": "",
+    "AxleConfig": {
+      "Type": "4x2",
+      "Axles": [
+        {
+          "Inertia": 14.9,
+          "Wheels": "315/70 R22.5",
+          "AxleWeightShare": 0.2,
+          "TwinTyres": false,
+          "RRCISO": 0.0055,
+          "FzISO": 33350.0,
+          "Type": "VehicleNonDriven"
+        },
+        {
+          "Inertia": 14.9,
+          "Wheels": "315/70 R22.5",
+          "AxleWeightShare": 0.25,
+          "TwinTyres": true,
+          "RRCISO": 0.0065,
+          "FzISO": 33350.0,
+          "Type": "VehicleDriven"
+        },
+        {
+          "Inertia": 19.2,
+          "Wheels": "385/65 R22.5",
+          "AxleWeightShare": 0.18333,
+          "TwinTyres": false,
+          "RRCISO": 0.0055,
+          "FzISO": 41690.0,
+          "Type": "Trailer"
+        },
+        {
+          "Inertia": 19.2,
+          "Wheels": "385/65 R22.5",
+          "AxleWeightShare": 0.18333,
+          "TwinTyres": false,
+          "RRCISO": 0.0055,
+          "FzISO": 41690.0,
+          "Type": "Trailer"
+        },
+        {
+          "Inertia": 19.2,
+          "Wheels": "385/65 R22.5",
+          "AxleWeightShare": 0.18334,
+          "TwinTyres": false,
+          "RRCISO": 0.0055,
+          "FzISO": 41690.0,
+          "Type": "Trailer"
+        }
+      ]
+    },
+    "EngineStopStart": true,
+    "EcoRoll": "None",
+    "PredictiveCruiseControl": "None",
+    "ATEcoRollReleaseLockupClutch": false,
+    "CdA": 5.3,
+    "VehicleHeight": 4.0,
+    "IdlingSpeed": 600.0,
+    "Retarder": {
+      "Type": "None",
+      "Ratio": 1.0,
+      "File": ""
+    },
+    "Angledrive": {
+      "Type": "None",
+      "Ratio": 0.0,
+      "LossMap": ""
+    },
+    "PTO": {
+      "Type": "None",
+      "LossMap": "",
+      "Cycle": "",
+      "CycleDriving": ""
+    },
+    "TorqueLimits": {},
+    "InitialSoC": 50.0,
+    "PowertrainConfiguration": "ParallelHybrid",
+    "ElectricMotors": [
+      {
+        "Count": 1,
+        "Ratio": 1.0,
+        "Position": "P2",
+        "MotorFile": "GenericEMotor_140kW_936Nm.vem",
+        "MechanicalEfficiency": 1.0
+      }
+    ],
+    "Batteries": [
+      {
+        "NumPacks": 1,
+        "BatteryFile": "GenericBattery_10kWh_658V.vbat",
+        "StreamId": 0
+      },
+      {
+        "NumPacks": 2,
+        "BatteryFile": "GenericBattery_5kWh_320V.vbat",
+        "StreamId": 2
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Group5_HEV_2.vveh b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Group5_HEV_2.vveh
new file mode 100644
index 0000000000000000000000000000000000000000..5c15ae2e6e4bb474f05b85750923deb5d0e1b38b
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Group5_HEV_2.vveh
@@ -0,0 +1,122 @@
+{
+  "Header": {
+    "CreatedBy": "",
+    "Date": "2021-07-14T09:15:25.3117102Z",
+    "AppVersion": "3",
+    "FileVersion": 10
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "VehCat": "Tractor",
+    "LegislativeClass": "Unknown",
+    "CurbWeight": 8229.0,
+    "CurbWeightExtra": 7500.0,
+    "MassMax": 18.0,
+    "Loading": 19300.0,
+    "rdyn": 492.0,
+    "CdCorrMode": "CdofVdecl",
+    "CdCorrFile": "",
+    "AxleConfig": {
+      "Type": "4x2",
+      "Axles": [
+        {
+          "Inertia": 14.9,
+          "Wheels": "315/70 R22.5",
+          "AxleWeightShare": 0.2,
+          "TwinTyres": false,
+          "RRCISO": 0.0055,
+          "FzISO": 33350.0,
+          "Type": "VehicleNonDriven"
+        },
+        {
+          "Inertia": 14.9,
+          "Wheels": "315/70 R22.5",
+          "AxleWeightShare": 0.25,
+          "TwinTyres": true,
+          "RRCISO": 0.0065,
+          "FzISO": 33350.0,
+          "Type": "VehicleDriven"
+        },
+        {
+          "Inertia": 19.2,
+          "Wheels": "385/65 R22.5",
+          "AxleWeightShare": 0.18333,
+          "TwinTyres": false,
+          "RRCISO": 0.0055,
+          "FzISO": 41690.0,
+          "Type": "Trailer"
+        },
+        {
+          "Inertia": 19.2,
+          "Wheels": "385/65 R22.5",
+          "AxleWeightShare": 0.18333,
+          "TwinTyres": false,
+          "RRCISO": 0.0055,
+          "FzISO": 41690.0,
+          "Type": "Trailer"
+        },
+        {
+          "Inertia": 19.2,
+          "Wheels": "385/65 R22.5",
+          "AxleWeightShare": 0.18334,
+          "TwinTyres": false,
+          "RRCISO": 0.0055,
+          "FzISO": 41690.0,
+          "Type": "Trailer"
+        }
+      ]
+    },
+    "EngineStopStart": true,
+    "EcoRoll": "None",
+    "PredictiveCruiseControl": "None",
+    "ATEcoRollReleaseLockupClutch": false,
+    "CdA": 5.3,
+    "VehicleHeight": 4.0,
+    "IdlingSpeed": 600.0,
+    "Retarder": {
+      "Type": "None",
+      "Ratio": 1.0,
+      "File": ""
+    },
+    "Angledrive": {
+      "Type": "None",
+      "Ratio": 0.0,
+      "LossMap": ""
+    },
+    "PTO": {
+      "Type": "None",
+      "LossMap": "",
+      "Cycle": "",
+      "CycleDriving": ""
+    },
+    "TorqueLimits": {},
+    "InitialSoC": 50.0,
+    "PowertrainConfiguration": "ParallelHybrid",
+    "ElectricMotors": [
+      {
+        "Count": 1,
+        "Ratio": 1.0,
+        "Position": "P2",
+        "MotorFile": "GenericEMotor_140kW_936Nm.vem",
+        "MechanicalEfficiency": 1.0
+      }
+    ],
+    "Batteries": [
+      {
+        "NumPacks": 1,
+        "BatteryFile": "GenericBattery_10kWh_658V.vbat",
+        "StreamId": 0
+      },
+      {
+        "NumPacks": 3,
+        "BatteryFile": "GenericBattery_5kWh_320V.vbat",
+        "StreamId": 2
+      },
+      {
+        "NumPacks": 1,
+        "BatteryFile": "GenericBattery_5kWh_320V.vbat",
+        "StreamId": 0
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Hybrid_Parameters.vhctl b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Hybrid_Parameters.vhctl
new file mode 100644
index 0000000000000000000000000000000000000000..a46aef1a05bf9df86bedf57572abe03a6de5fb23
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Hybrid_Parameters.vhctl
@@ -0,0 +1,17 @@
+{
+  "Header": {
+    "CreatedBy": "",
+    "Date": "2020-09-07T15:28:08.3781385Z",
+    "AppVersion": "3",
+    "FileVersion": 1
+  },
+  "Body": {
+    "EquivalenceFactor": 2.0,
+    "MinSoC": 20.0,
+    "MaxSoC": 80.0,
+    "TargetSoC": 50.0,
+    "AuxBufferTime": 5.0,
+    "AuxBufferChgTime": 5.0,
+    "MinICEOnTime": 10.0
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/MaxCurrent.vimax b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/MaxCurrent.vimax
new file mode 100644
index 0000000000000000000000000000000000000000..5552bda2b03a9e6d5f0b2de49ea79b598013047f
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/MaxCurrent.vimax
@@ -0,0 +1,3 @@
+SOC, I_charge, I_discharge
+0, 280, 280
+100, 280, 280
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/MaxCurrent_2.vimax b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/MaxCurrent_2.vimax
new file mode 100644
index 0000000000000000000000000000000000000000..d5d8caaff861481f3fed59db75f7b32a8a69eafa
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/MaxCurrent_2.vimax
@@ -0,0 +1,3 @@
+SOC, I_charge, I_discharge
+0, 180, 180
+100, 180, 180
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/P2 Group 5.vecto b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/P2 Group 5.vecto
new file mode 100644
index 0000000000000000000000000000000000000000..690904a192b1c7dd5083482977b8f814dc272f08
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/P2 Group 5.vecto	
@@ -0,0 +1,64 @@
+{
+  "Header": {
+    "CreatedBy": "",
+    "Date": "2020-08-24T13:41:04.1591616Z",
+    "AppVersion": "3",
+    "FileVersion": 8
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "EngineOnlyMode": false,
+    "VehicleFile": "Group5_HEV.vveh",
+    "EngineFile": "Engine_325kW_12.7l.veng",
+    "GearboxFile": "AMT_12.vgbx",
+    "TCU": "AMT_12.vgbx",
+    "ShiftStrategy": "TUGraz.VectoCore.Models.SimulationComponent.Impl.AMTShiftStrategy",
+    "HybridStrategyParams": "Hybrid_Parameters.vhctl",
+    "AuxiliaryAssembly": "Classic",
+    "AuxiliaryVersion": "CLASSIC",
+    "AdvancedAuxiliaryFilePath": "",
+    "Aux": [],
+    "Padd": 3000.0,
+    "Padd_electric": 0.0,
+    "VACC": "Truck.vacc",
+    "EngineStopStartAtVehicleStopThreshold": 0.0,
+    "EngineStopStartMaxOffTimespan": 1000.0,
+    "EngineStopStartUtilityFactor": 0.0,
+    "EcoRollMinSpeed": 0.0,
+    "EcoRollActivationDelay": 0.0,
+    "EcoRollUnderspeedThreshold": 0.0,
+    "EcoRollMaxAcceleration": 0.0,
+    "PCCEnableSpeed": 0.0,
+    "PCCMinSpeed": 0.0,
+    "PCCUnderspeed": 0.0,
+    "PCCOverSpeed": 5.0,
+    "PCCPreviewDistanceUC1": 0.0,
+    "PCCPreviewDistanceUC2": 0.0,
+    "LAC": {
+      "Enabled": true,
+      "PreviewDistanceFactor": 10.0,
+      "DF_offset": 2.5,
+      "DF_scaling": 1.5,
+      "DF_targetSpeedLookup": "",
+      "Df_velocityDropLookup": "",
+      "MinSpeed": 50.0
+    },
+    "OverSpeedEcoRoll": {
+      "Mode": "Overspeed",
+      "MinSpeed": 50.0,
+      "OverSpeed": 2.5
+    },
+    "Cycles": [
+      "LongHaul",
+      "Coach",
+      "Construction",
+      "HeavyUrban",
+      "Interurban",
+      "MunicipalUtility",
+      "RegionalDelivery",
+      "Suburban",
+      "Urban",
+      "UrbanDelivery"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/P2 Group 5_2.vecto b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/P2 Group 5_2.vecto
new file mode 100644
index 0000000000000000000000000000000000000000..fa7807e6944e46d36dab253565a21da75058dc6d
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/P2 Group 5_2.vecto	
@@ -0,0 +1,64 @@
+{
+  "Header": {
+    "CreatedBy": "",
+    "Date": "2020-08-24T13:41:04.1591616Z",
+    "AppVersion": "3",
+    "FileVersion": 8
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "EngineOnlyMode": false,
+    "VehicleFile": "Group5_HEV_2.vveh",
+    "EngineFile": "Engine_325kW_12.7l.veng",
+    "GearboxFile": "AMT_12.vgbx",
+    "TCU": "AMT_12.vgbx",
+    "ShiftStrategy": "TUGraz.VectoCore.Models.SimulationComponent.Impl.AMTShiftStrategy",
+    "HybridStrategyParams": "Hybrid_Parameters.vhctl",
+    "AuxiliaryAssembly": "Classic",
+    "AuxiliaryVersion": "CLASSIC",
+    "AdvancedAuxiliaryFilePath": "",
+    "Aux": [],
+    "Padd": 3000.0,
+    "Padd_electric": 0.0,
+    "VACC": "Truck.vacc",
+    "EngineStopStartAtVehicleStopThreshold": 0.0,
+    "EngineStopStartMaxOffTimespan": 1000.0,
+    "EngineStopStartUtilityFactor": 0.0,
+    "EcoRollMinSpeed": 0.0,
+    "EcoRollActivationDelay": 0.0,
+    "EcoRollUnderspeedThreshold": 0.0,
+    "EcoRollMaxAcceleration": 0.0,
+    "PCCEnableSpeed": 0.0,
+    "PCCMinSpeed": 0.0,
+    "PCCUnderspeed": 0.0,
+    "PCCOverSpeed": 5.0,
+    "PCCPreviewDistanceUC1": 0.0,
+    "PCCPreviewDistanceUC2": 0.0,
+    "LAC": {
+      "Enabled": true,
+      "PreviewDistanceFactor": 10.0,
+      "DF_offset": 2.5,
+      "DF_scaling": 1.5,
+      "DF_targetSpeedLookup": "",
+      "Df_velocityDropLookup": "",
+      "MinSpeed": 50.0
+    },
+    "OverSpeedEcoRoll": {
+      "Mode": "Overspeed",
+      "MinSpeed": 50.0,
+      "OverSpeed": 2.5
+    },
+    "Cycles": [
+      "LongHaul",
+      "Coach",
+      "Construction",
+      "HeavyUrban",
+      "Interurban",
+      "MunicipalUtility",
+      "RegionalDelivery",
+      "Suburban",
+      "Urban",
+      "UrbanDelivery"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Truck.vacc b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Truck.vacc
new file mode 100644
index 0000000000000000000000000000000000000000..54e77864874d21d67e8f8d69a97b35c5c6031749
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2_BatSystem/Truck.vacc
@@ -0,0 +1,6 @@
+v [km/h],acc [m/s²],dec [m/s²]
+0,1,-1
+25,1,-1
+50,0.642857143,-1
+60,0.5,-0.5
+120,0.5,-0.5
diff --git a/VectoCore/VectoCoreTest/Utils/MockBatteryInputData.cs b/VectoCore/VectoCoreTest/Utils/MockBatteryInputData.cs
index a300b4f5a2d12e57a27cabb4dcc2e6dc86376034..6b159e915d4cc7f2fcd8842d7d5e11dce10dd02c 100644
--- a/VectoCore/VectoCoreTest/Utils/MockBatteryInputData.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockBatteryInputData.cs
@@ -1,9 +1,47 @@
-using TUGraz.VectoCommon.InputData;
+using System.Collections.Generic;
+using System.Linq;
+using TUGraz.VECTO;
+using TUGraz.VectoCommon.InputData;
 
 namespace TUGraz.VectoCore.Tests.Utils {
-	public class MockBatteryInputData : IElectricStorageEngineeringInputData
+	public class MockBatteryInputData : IElectricStorageSystemEngineeringInputData
 	{
-		public IREESSPackInputData REESSPack { get; set; }
-		public int Count { get; set; }
+		protected internal IList<IElectricStorageDeclarationInputData> _electricStorageElements = new List<IElectricStorageDeclarationInputData>();
+
+		public IREESSPackInputData REESSPack
+		{
+			set
+			{
+				_electricStorageElements.Add(new MockElectricStorageInputWrapper() {
+					REESSPack = value,
+					StringId = 0,
+					Count = 1,
+				});
+			}
+		}
+
+		#region Implementation of IElectricStorageSystemDeclarationInputData
+
+		IList<IElectricStorageDeclarationInputData> IElectricStorageSystemDeclarationInputData.ElectricStorageElements => _electricStorageElements;
+
+		#endregion
+
+		#region Implementation of IElectricStorageSystemEngineeringInputData
+
+		IList<IElectricStorageEngineeringInputData> IElectricStorageSystemEngineeringInputData.ElectricStorageElements => _electricStorageElements.Cast<IElectricStorageEngineeringInputData>().ToList();
+
+		#endregion
+
+		public class MockElectricStorageInputWrapper : IElectricStorageDeclarationInputData, IElectricStorageEngineeringInputData
+		{
+			#region Implementation of IElectricStorageDeclarationInputData
+
+			public IREESSPackInputData REESSPack { get; set; }
+			public int Count { get; set; }
+			public int StringId { get; set; }
+
+			#endregion
+		}
+
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
index 1d9dc6e7b47bb279cd82627db198d1f59cab70f6..b83bde203d76065e11904f94aec270d5bcb1efb7 100644
--- a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
@@ -81,7 +81,7 @@ namespace TUGraz.VectoCore.Tests.Utils {
 		public IPTOTransmissionInputData PTOTransmissionInputData { get; set; }
 		public IAxlesDeclarationInputData AxleWheels { get; set; }
 		public IBusAuxiliariesDeclarationData BusAuxiliaries { get; set; }
-		public IElectricStorageDeclarationInputData ElectricStorage { get; set; }
+		public IElectricStorageSystemDeclarationInputData ElectricStorage { get; set; }
 		public IElectricMachinesDeclarationInputData ElectricMachines { get; set; }
 
 		#endregion
@@ -179,7 +179,7 @@ namespace TUGraz.VectoCore.Tests.Utils {
 		public IRetarderInputData RetarderInputData { get; set; }
 		public IPTOTransmissionInputData PTOTransmissionInputData { get; set; }
 		public IAxlesEngineeringInputData AxleWheels { get; set; }
-		public IElectricStorageEngineeringInputData ElectricStorage { get; set; }
+		public IElectricStorageSystemEngineeringInputData ElectricStorage { get; set; }
 		public IElectricMachinesEngineeringInputData ElectricMachines { get; set; }
 
 		#endregion
diff --git a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
index 3caea6a689b1eceddcde9ead2c5f40093e4a1591..0d67379cba3a0fa92df9843ce0e8bb05b9e07221 100644
--- a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
@@ -54,6 +54,9 @@ namespace TUGraz.VectoCore.Tests.Utils
 		protected Dictionary<IFuelProperties, Dictionary<ModalResultField, DataColumn>> FuelColumns =
 			new Dictionary<IFuelProperties, Dictionary<ModalResultField, DataColumn>>();
 
+		protected Dictionary<int, Dictionary<ModalResultField, DataColumn>> BatteryColumns =
+			new Dictionary<int, Dictionary<ModalResultField, DataColumn>>();
+
 		private Second _duration;
 		private Meter _distance;
 
@@ -131,6 +134,41 @@ namespace TUGraz.VectoCore.Tests.Utils
 			set => throw new NotImplementedException();
 		}
 
+		public object this[ModalResultField key, int? pos]
+		{
+			get
+			{
+				if (pos == null) {
+					return CurrentRow[key.GetName()];
+				}
+
+				if (!BatteryColumns.ContainsKey(pos.Value)) {
+					return null;
+				}
+
+				var entry = BatteryColumns[pos.Value];
+				return !entry.ContainsKey(key) ? null : CurrentRow[entry[key]];
+			}
+			set
+			{
+				if (pos == null) {
+					CurrentRow[key.GetName()] = value;
+				} else {
+					if (!BatteryColumns.ContainsKey(pos.Value)) {
+						BatteryColumns[pos.Value] = new Dictionary<ModalResultField, DataColumn>();
+					}
+
+					var entry = BatteryColumns[pos.Value];
+					if (!entry.ContainsKey(key)) {
+						var col = Data.Columns.Add($"{key.GetName()}_{pos.Value}", typeof(SI));
+						entry[key] = col;
+					}
+
+					CurrentRow[entry[key]] = value;
+				}
+			}
+		}
+
 		public object this[string auxId]
 		{
 			get => CurrentRow[Auxiliaries[auxId]];
diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
index a5e43b2bb0f580ecc5335965e8d65a91d097a0fb..228d31239fc2ce38dbd93dd1a8ce045e0e52a76d 100644
--- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
@@ -194,10 +194,10 @@ namespace TUGraz.VectoCore.Tests.Utils
 		}
 	
 
-		public static BatteryData CreateBatteryData(string file, double initialSoC, int cnt = 1)
+		public static BatterySystemData CreateBatteryData(string file, double initialSoC)
 		{
 			var inputData = JSONInputDataFactory.ReadREESSData(file, false);
-			return new EngineeringDataAdapter().CreateBatteryData(new MockBatteryInputData() {Count = cnt, REESSPack = inputData}, initialSoC);
+			return new EngineeringDataAdapter().CreateBatteryData(new MockBatteryInputData() {REESSPack = inputData}, initialSoC);
 		}
 	}
 }
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index c60edb48e0329015705afc477f96d2552f1d7097..bfbdc378cb15b942bbff642cdec30255439eb36e 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -148,6 +148,7 @@
     <Compile Include="Models\SimulationComponentData\TorqueConverterDataTest.cs" />
     <Compile Include="Models\SimulationComponentData\ValidationTest.cs" />
     <Compile Include="Models\SimulationComponent\ATGearboxTest.cs" />
+    <Compile Include="Models\SimulationComponent\BatterySystemTest.cs" />
     <Compile Include="Models\SimulationComponent\BatteryTest.cs" />
     <Compile Include="Models\SimulationComponent\ElectricMotorTest.cs" />
     <Compile Include="Models\SimulationComponent\EngineFanAuxTest.cs" />
@@ -1090,6 +1091,114 @@
     <None Include="TestData\Hybrids\GenericVehicle_Group5_P2\VKM\Engine_325kW_12.7l.veng">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\325kW.vfld">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\325kW.vmap">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\AMT_12.vgbx">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Axle_4x2_Tractor.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Default.vrlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Engine_325kW_12.7l.veng">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_1.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_10.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_11.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_12.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_2.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_3.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_4.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_5.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_6.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_7.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_8.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Gear_9.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\GenericBattery_10kWh_658V.vbat">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\GenericBattery_10kWh_658V.vbatr">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\GenericBattery_10kWh_658V.vbatv">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\GenericBattery_5kWh_320V.vbat">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\GenericBattery_5kWh_320V.vbatr">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\GenericBattery_5kWh_320V.vbatv">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\GenericDrag_140kW_936Nm.vemd">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\GenericEMotor_140kW_900Nm.vemp">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\GenericEMotor_140kW_936Nm.vem">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\GenericMap_140kW_936Nm.vemo">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Group5_HEV.vveh">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Group5_HEV_2.vveh">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Hybrid_Parameters.vhctl">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\MaxCurrent.vimax">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\MaxCurrent_2.vimax">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\P2 Group 5.vecto">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\P2 Group 5_2.vecto">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Hybrids\GenericVehicle_Group5_P2_BatSystem\Truck.vacc">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="TestData\Hybrids\GenericVehicle_Group5_P4\325kW.vfld">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>