diff --git a/AuxillaryTestHarness/Dashboard.Designer.vb b/AuxillaryTestHarness/Dashboard.Designer.vb
index 2224b0a5e891d992c2fec47acc95c2bfc979a6b4..b55d73a0fd01e4e564631b2ca399e08d13cfa818 100644
--- a/AuxillaryTestHarness/Dashboard.Designer.vb
+++ b/AuxillaryTestHarness/Dashboard.Designer.vb
@@ -42,15 +42,16 @@ Partial Class Dashboard
         Me.Label2 = New System.Windows.Forms.Label()
         Me.txtVehicleWeightKG = New System.Windows.Forms.TextBox()
         Me.tabElectricalConfig = New System.Windows.Forms.TabPage()
-        Me.DataGridView3 = New System.Windows.Forms.DataGridView()
-        Me.DataGridView2 = New System.Windows.Forms.DataGridView()
-        Me.DataGridView1 = New System.Windows.Forms.DataGridView()
+        Me.gvResultsCardOverrun = New System.Windows.Forms.DataGridView()
+        Me.gvResultsCardTraction = New System.Windows.Forms.DataGridView()
+        Me.gvResultsCardIdle = New System.Windows.Forms.DataGridView()
         Me.Label9 = New System.Windows.Forms.Label()
         Me.Label8 = New System.Windows.Forms.Label()
         Me.Label7 = New System.Windows.Forms.Label()
         Me.chkSmartElectricals = New System.Windows.Forms.CheckBox()
         Me.Label6 = New System.Windows.Forms.Label()
         Me.gvElectricalConsumables = New System.Windows.Forms.DataGridView()
+        Me.brcElecConsumers = New System.Windows.Forms.BindingSource(Me.components)
         Me.txtDoorActuationTimeSeconds = New System.Windows.Forms.TextBox()
         Me.labelDoorActuationTimeSeconds = New System.Windows.Forms.Label()
         Me.Label5 = New System.Windows.Forms.Label()
@@ -68,16 +69,15 @@ Partial Class Dashboard
         Me.btnForward = New System.Windows.Forms.Button()
         Me.btnBack = New System.Windows.Forms.Button()
         Me.btnStart = New System.Windows.Forms.Button()
-        Me.brcElecConsumers = New System.Windows.Forms.BindingSource(Me.components)
         Me.tabMain.SuspendLayout
         Me.tabGeneralConfig.SuspendLayout
         Me.tabElectricalConfig.SuspendLayout
-        CType(Me.DataGridView3,System.ComponentModel.ISupportInitialize).BeginInit
-        CType(Me.DataGridView2,System.ComponentModel.ISupportInitialize).BeginInit
-        CType(Me.DataGridView1,System.ComponentModel.ISupportInitialize).BeginInit
+        CType(Me.gvResultsCardOverrun,System.ComponentModel.ISupportInitialize).BeginInit
+        CType(Me.gvResultsCardTraction,System.ComponentModel.ISupportInitialize).BeginInit
+        CType(Me.gvResultsCardIdle,System.ComponentModel.ISupportInitialize).BeginInit
         CType(Me.gvElectricalConsumables,System.ComponentModel.ISupportInitialize).BeginInit
-        Me.Panel1.SuspendLayout
         CType(Me.brcElecConsumers,System.ComponentModel.ISupportInitialize).BeginInit
+        Me.Panel1.SuspendLayout
         Me.SuspendLayout
         '
         'tabMain
@@ -91,7 +91,7 @@ Partial Class Dashboard
         Me.tabMain.Location = New System.Drawing.Point(13, 14)
         Me.tabMain.Name = "tabMain"
         Me.tabMain.SelectedIndex = 0
-        Me.tabMain.Size = New System.Drawing.Size(894, 477)
+        Me.tabMain.Size = New System.Drawing.Size(894, 636)
         Me.tabMain.TabIndex = 0
         Me.tabMain.Tag = ""
         '
@@ -104,7 +104,7 @@ Partial Class Dashboard
         Me.tabGeneralConfig.Location = New System.Drawing.Point(4, 22)
         Me.tabGeneralConfig.Name = "tabGeneralConfig"
         Me.tabGeneralConfig.Padding = New System.Windows.Forms.Padding(3)
-        Me.tabGeneralConfig.Size = New System.Drawing.Size(886, 451)
+        Me.tabGeneralConfig.Size = New System.Drawing.Size(886, 571)
         Me.tabGeneralConfig.TabIndex = 0
         Me.tabGeneralConfig.Text = "GeneralConfig"
         Me.tabGeneralConfig.UseVisualStyleBackColor = true
@@ -145,9 +145,9 @@ Partial Class Dashboard
         '
         'tabElectricalConfig
         '
-        Me.tabElectricalConfig.Controls.Add(Me.DataGridView3)
-        Me.tabElectricalConfig.Controls.Add(Me.DataGridView2)
-        Me.tabElectricalConfig.Controls.Add(Me.DataGridView1)
+        Me.tabElectricalConfig.Controls.Add(Me.gvResultsCardOverrun)
+        Me.tabElectricalConfig.Controls.Add(Me.gvResultsCardTraction)
+        Me.tabElectricalConfig.Controls.Add(Me.gvResultsCardIdle)
         Me.tabElectricalConfig.Controls.Add(Me.Label9)
         Me.tabElectricalConfig.Controls.Add(Me.Label8)
         Me.tabElectricalConfig.Controls.Add(Me.Label7)
@@ -165,12 +165,12 @@ Partial Class Dashboard
         Me.tabElectricalConfig.Location = New System.Drawing.Point(4, 22)
         Me.tabElectricalConfig.Name = "tabElectricalConfig"
         Me.tabElectricalConfig.Padding = New System.Windows.Forms.Padding(3)
-        Me.tabElectricalConfig.Size = New System.Drawing.Size(886, 451)
+        Me.tabElectricalConfig.Size = New System.Drawing.Size(886, 610)
         Me.tabElectricalConfig.TabIndex = 1
         Me.tabElectricalConfig.Text = "ElectricalConfig"
         Me.tabElectricalConfig.UseVisualStyleBackColor = true
         '
-        'DataGridView3
+        'gvResultsCardOverrun
         '
         DataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
         DataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control
@@ -179,8 +179,8 @@ Partial Class Dashboard
         DataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight
         DataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText
         DataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.DataGridView3.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle1
-        Me.DataGridView3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
+        Me.gvResultsCardOverrun.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle1
+        Me.gvResultsCardOverrun.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
         DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
         DataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window
         DataGridViewCellStyle2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
@@ -188,9 +188,9 @@ Partial Class Dashboard
         DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight
         DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText
         DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
-        Me.DataGridView3.DefaultCellStyle = DataGridViewCellStyle2
-        Me.DataGridView3.Location = New System.Drawing.Point(613, 353)
-        Me.DataGridView3.Name = "DataGridView3"
+        Me.gvResultsCardOverrun.DefaultCellStyle = DataGridViewCellStyle2
+        Me.gvResultsCardOverrun.Location = New System.Drawing.Point(590, 451)
+        Me.gvResultsCardOverrun.Name = "gvResultsCardOverrun"
         DataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
         DataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control
         DataGridViewCellStyle3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
@@ -198,11 +198,11 @@ Partial Class Dashboard
         DataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight
         DataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText
         DataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.DataGridView3.RowHeadersDefaultCellStyle = DataGridViewCellStyle3
-        Me.DataGridView3.Size = New System.Drawing.Size(218, 81)
-        Me.DataGridView3.TabIndex = 18
+        Me.gvResultsCardOverrun.RowHeadersDefaultCellStyle = DataGridViewCellStyle3
+        Me.gvResultsCardOverrun.Size = New System.Drawing.Size(246, 125)
+        Me.gvResultsCardOverrun.TabIndex = 18
         '
-        'DataGridView2
+        'gvResultsCardTraction
         '
         DataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
         DataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control
@@ -211,8 +211,8 @@ Partial Class Dashboard
         DataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight
         DataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText
         DataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.DataGridView2.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle4
-        Me.DataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
+        Me.gvResultsCardTraction.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle4
+        Me.gvResultsCardTraction.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
         DataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
         DataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window
         DataGridViewCellStyle5.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
@@ -220,9 +220,9 @@ Partial Class Dashboard
         DataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight
         DataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText
         DataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
-        Me.DataGridView2.DefaultCellStyle = DataGridViewCellStyle5
-        Me.DataGridView2.Location = New System.Drawing.Point(324, 353)
-        Me.DataGridView2.Name = "DataGridView2"
+        Me.gvResultsCardTraction.DefaultCellStyle = DataGridViewCellStyle5
+        Me.gvResultsCardTraction.Location = New System.Drawing.Point(311, 451)
+        Me.gvResultsCardTraction.Name = "gvResultsCardTraction"
         DataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
         DataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control
         DataGridViewCellStyle6.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
@@ -230,11 +230,11 @@ Partial Class Dashboard
         DataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight
         DataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText
         DataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.DataGridView2.RowHeadersDefaultCellStyle = DataGridViewCellStyle6
-        Me.DataGridView2.Size = New System.Drawing.Size(218, 81)
-        Me.DataGridView2.TabIndex = 17
+        Me.gvResultsCardTraction.RowHeadersDefaultCellStyle = DataGridViewCellStyle6
+        Me.gvResultsCardTraction.Size = New System.Drawing.Size(258, 125)
+        Me.gvResultsCardTraction.TabIndex = 17
         '
-        'DataGridView1
+        'gvResultsCardIdle
         '
         DataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
         DataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Control
@@ -243,8 +243,8 @@ Partial Class Dashboard
         DataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight
         DataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText
         DataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.DataGridView1.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle7
-        Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
+        Me.gvResultsCardIdle.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle7
+        Me.gvResultsCardIdle.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
         DataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
         DataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window
         DataGridViewCellStyle8.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
@@ -252,9 +252,9 @@ Partial Class Dashboard
         DataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight
         DataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText
         DataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
-        Me.DataGridView1.DefaultCellStyle = DataGridViewCellStyle8
-        Me.DataGridView1.Location = New System.Drawing.Point(35, 353)
-        Me.DataGridView1.Name = "DataGridView1"
+        Me.gvResultsCardIdle.DefaultCellStyle = DataGridViewCellStyle8
+        Me.gvResultsCardIdle.Location = New System.Drawing.Point(35, 451)
+        Me.gvResultsCardIdle.Name = "gvResultsCardIdle"
         DataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
         DataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Control
         DataGridViewCellStyle9.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
@@ -262,14 +262,14 @@ Partial Class Dashboard
         DataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight
         DataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText
         DataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.DataGridView1.RowHeadersDefaultCellStyle = DataGridViewCellStyle9
-        Me.DataGridView1.Size = New System.Drawing.Size(218, 81)
-        Me.DataGridView1.TabIndex = 16
+        Me.gvResultsCardIdle.RowHeadersDefaultCellStyle = DataGridViewCellStyle9
+        Me.gvResultsCardIdle.Size = New System.Drawing.Size(256, 125)
+        Me.gvResultsCardIdle.TabIndex = 16
         '
         'Label9
         '
         Me.Label9.AutoSize = true
-        Me.Label9.Location = New System.Drawing.Point(616, 333)
+        Me.Label9.Location = New System.Drawing.Point(587, 435)
         Me.Label9.Name = "Label9"
         Me.Label9.Size = New System.Drawing.Size(83, 13)
         Me.Label9.TabIndex = 15
@@ -278,7 +278,7 @@ Partial Class Dashboard
         'Label8
         '
         Me.Label8.AutoSize = true
-        Me.Label8.Location = New System.Drawing.Point(326, 332)
+        Me.Label8.Location = New System.Drawing.Point(308, 435)
         Me.Label8.Name = "Label8"
         Me.Label8.Size = New System.Drawing.Size(84, 13)
         Me.Label8.TabIndex = 14
@@ -287,7 +287,7 @@ Partial Class Dashboard
         'Label7
         '
         Me.Label7.AutoSize = true
-        Me.Label7.Location = New System.Drawing.Point(39, 333)
+        Me.Label7.Location = New System.Drawing.Point(38, 435)
         Me.Label7.Name = "Label7"
         Me.Label7.Size = New System.Drawing.Size(62, 13)
         Me.Label7.TabIndex = 13
@@ -306,7 +306,7 @@ Partial Class Dashboard
         'Label6
         '
         Me.Label6.AutoSize = true
-        Me.Label6.Location = New System.Drawing.Point(35, 154)
+        Me.Label6.Location = New System.Drawing.Point(34, 154)
         Me.Label6.Name = "Label6"
         Me.Label6.Size = New System.Drawing.Size(116, 13)
         Me.Label6.TabIndex = 11
@@ -344,7 +344,7 @@ Partial Class Dashboard
         DataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText
         DataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
         Me.gvElectricalConsumables.RowHeadersDefaultCellStyle = DataGridViewCellStyle12
-        Me.gvElectricalConsumables.Size = New System.Drawing.Size(803, 149)
+        Me.gvElectricalConsumables.Size = New System.Drawing.Size(803, 250)
         Me.gvElectricalConsumables.TabIndex = 10
         '
         'txtDoorActuationTimeSeconds
@@ -415,7 +415,7 @@ Partial Class Dashboard
         '
         Me.tabPneumaticConfig.Location = New System.Drawing.Point(4, 22)
         Me.tabPneumaticConfig.Name = "tabPneumaticConfig"
-        Me.tabPneumaticConfig.Size = New System.Drawing.Size(743, 441)
+        Me.tabPneumaticConfig.Size = New System.Drawing.Size(886, 571)
         Me.tabPneumaticConfig.TabIndex = 2
         Me.tabPneumaticConfig.Text = "PneumaticConfig"
         Me.tabPneumaticConfig.UseVisualStyleBackColor = true
@@ -424,7 +424,7 @@ Partial Class Dashboard
         '
         Me.tabHVACConfig.Location = New System.Drawing.Point(4, 22)
         Me.tabHVACConfig.Name = "tabHVACConfig"
-        Me.tabHVACConfig.Size = New System.Drawing.Size(743, 441)
+        Me.tabHVACConfig.Size = New System.Drawing.Size(886, 571)
         Me.tabHVACConfig.TabIndex = 3
         Me.tabHVACConfig.Text = "HVACConfig"
         Me.tabHVACConfig.UseVisualStyleBackColor = true
@@ -433,7 +433,7 @@ Partial Class Dashboard
         '
         Me.tabPlayground.Location = New System.Drawing.Point(4, 22)
         Me.tabPlayground.Name = "tabPlayground"
-        Me.tabPlayground.Size = New System.Drawing.Size(743, 441)
+        Me.tabPlayground.Size = New System.Drawing.Size(886, 571)
         Me.tabPlayground.TabIndex = 4
         Me.tabPlayground.Text = "Playground"
         Me.tabPlayground.UseVisualStyleBackColor = true
@@ -449,12 +449,12 @@ Partial Class Dashboard
         Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
         Me.Panel1.Location = New System.Drawing.Point(0, 0)
         Me.Panel1.Name = "Panel1"
-        Me.Panel1.Size = New System.Drawing.Size(937, 566)
+        Me.Panel1.Size = New System.Drawing.Size(937, 732)
         Me.Panel1.TabIndex = 1
         '
         'btnCancel
         '
-        Me.btnCancel.Location = New System.Drawing.Point(727, 510)
+        Me.btnCancel.Location = New System.Drawing.Point(827, 670)
         Me.btnCancel.Name = "btnCancel"
         Me.btnCancel.Size = New System.Drawing.Size(75, 23)
         Me.btnCancel.TabIndex = 5
@@ -463,7 +463,7 @@ Partial Class Dashboard
         '
         'btnFinish
         '
-        Me.btnFinish.Location = New System.Drawing.Point(645, 511)
+        Me.btnFinish.Location = New System.Drawing.Point(745, 671)
         Me.btnFinish.Name = "btnFinish"
         Me.btnFinish.Size = New System.Drawing.Size(75, 23)
         Me.btnFinish.TabIndex = 4
@@ -472,7 +472,7 @@ Partial Class Dashboard
         '
         'btnForward
         '
-        Me.btnForward.Location = New System.Drawing.Point(521, 511)
+        Me.btnForward.Location = New System.Drawing.Point(621, 671)
         Me.btnForward.Name = "btnForward"
         Me.btnForward.Size = New System.Drawing.Size(75, 23)
         Me.btnForward.TabIndex = 3
@@ -481,7 +481,7 @@ Partial Class Dashboard
         '
         'btnBack
         '
-        Me.btnBack.Location = New System.Drawing.Point(437, 511)
+        Me.btnBack.Location = New System.Drawing.Point(537, 671)
         Me.btnBack.Name = "btnBack"
         Me.btnBack.Size = New System.Drawing.Size(75, 23)
         Me.btnBack.TabIndex = 2
@@ -490,7 +490,7 @@ Partial Class Dashboard
         '
         'btnStart
         '
-        Me.btnStart.Location = New System.Drawing.Point(320, 511)
+        Me.btnStart.Location = New System.Drawing.Point(420, 671)
         Me.btnStart.Name = "btnStart"
         Me.btnStart.Size = New System.Drawing.Size(75, 23)
         Me.btnStart.TabIndex = 1
@@ -501,7 +501,7 @@ Partial Class Dashboard
         '
         Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!)
         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
-        Me.ClientSize = New System.Drawing.Size(937, 566)
+        Me.ClientSize = New System.Drawing.Size(937, 732)
         Me.Controls.Add(Me.Panel1)
         Me.Name = "Dashboard"
         Me.Text = "Dashboard"
@@ -510,12 +510,12 @@ Partial Class Dashboard
         Me.tabGeneralConfig.PerformLayout
         Me.tabElectricalConfig.ResumeLayout(false)
         Me.tabElectricalConfig.PerformLayout
-        CType(Me.DataGridView3,System.ComponentModel.ISupportInitialize).EndInit
-        CType(Me.DataGridView2,System.ComponentModel.ISupportInitialize).EndInit
-        CType(Me.DataGridView1,System.ComponentModel.ISupportInitialize).EndInit
+        CType(Me.gvResultsCardOverrun,System.ComponentModel.ISupportInitialize).EndInit
+        CType(Me.gvResultsCardTraction,System.ComponentModel.ISupportInitialize).EndInit
+        CType(Me.gvResultsCardIdle,System.ComponentModel.ISupportInitialize).EndInit
         CType(Me.gvElectricalConsumables,System.ComponentModel.ISupportInitialize).EndInit
-        Me.Panel1.ResumeLayout(false)
         CType(Me.brcElecConsumers,System.ComponentModel.ISupportInitialize).EndInit
+        Me.Panel1.ResumeLayout(false)
         Me.ResumeLayout(false)
 
 End Sub
@@ -537,9 +537,8 @@ End Sub
     Friend WithEvents txtAlternatorMapPath As System.Windows.Forms.TextBox
     Friend WithEvents Label1 As System.Windows.Forms.Label
     Friend WithEvents txtPowernetVoltage As System.Windows.Forms.TextBox
-    Friend WithEvents DataGridView3 As System.Windows.Forms.DataGridView
-    Friend WithEvents DataGridView2 As System.Windows.Forms.DataGridView
-    Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView
+    Friend WithEvents gvResultsCardOverrun As System.Windows.Forms.DataGridView
+    Friend WithEvents gvResultsCardTraction As System.Windows.Forms.DataGridView
     Friend WithEvents Label9 As System.Windows.Forms.Label
     Friend WithEvents Label8 As System.Windows.Forms.Label
     Friend WithEvents Label7 As System.Windows.Forms.Label
@@ -553,4 +552,5 @@ End Sub
     Friend WithEvents btnBack As System.Windows.Forms.Button
     Friend WithEvents btnStart As System.Windows.Forms.Button
     Friend WithEvents brcElecConsumers As System.Windows.Forms.BindingSource
+    Public WithEvents gvResultsCardIdle As System.Windows.Forms.DataGridView
 End Class
diff --git a/AuxillaryTestHarness/Dashboard.vb b/AuxillaryTestHarness/Dashboard.vb
index 29a7cda19b54efc32bb17bb1bb567386b5129058..35c24938b410c2f8820070ff1a8636754ff1e999 100644
--- a/AuxillaryTestHarness/Dashboard.vb
+++ b/AuxillaryTestHarness/Dashboard.vb
@@ -1,13 +1,14 @@
 Imports VectoAuxiliaries
 Imports VectoAuxiliaries.Electrics
+Imports System.ComponentModel
 
 Public Class Dashboard
 
-public auxEnvironment As New AuxillaryEnvironment("")
+Public auxEnvironment As New AuxillaryEnvironment("")
 
-Private Sub Dashboard_Load( sender As Object,  e As EventArgs) Handles MyBase.Load
+Private Sub Dashboard_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
-cboCycle.SelectedIndex=0
+cboCycle.SelectedIndex = 0
 
   SetupControls()
 
@@ -16,140 +17,196 @@ cboCycle.SelectedIndex=0
 
 End Sub
 
-Private Sub cboCycle_SelectedIndexChanged( sender As Object,  e As EventArgs) Handles cboCycle.SelectedIndexChanged
+Private Sub cboCycle_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboCycle.SelectedIndexChanged
 
 End Sub
 
-Private sub SetupControls()
+Private Sub SetupControls()
 
-     Dim cIndex As Integer=0
+     Dim cIndex As Integer = 0
 
      'ElectricalConsumerGrid 
      'Columns
-     cIndex=gvElectricalConsumables.Columns.Add("Category","Category") 
-     gvElectricalConsumables.Columns(cIndex).DataPropertyName="Category"
-          gvElectricalConsumables.Columns(cIndex).MinimumWidth=150
-     gvElectricalConsumables.Columns(cIndex).ReadOnly=True
-              
-     cIndex=gvElectricalConsumables.Columns.Add("ConsumerName","Name") 
-     gvElectricalConsumables.Columns(cIndex).DataPropertyName="ConsumerName"
-     gvElectricalConsumables.Columns(cIndex).MinimumWidth=300
-     gvElectricalConsumables.Columns(cIndex).ReadOnly=True
-
-     Dim baseVehicle As New DataGridViewCheckBoxColumn(false)
-     baseVehicle.HeaderText="BaseVehicle"
-     cIndex=gvElectricalConsumables.Columns.Add(baseVehicle)
-     gvElectricalConsumables.Columns(cIndex).DataPropertyName="BaseVehicle"
-     gvElectricalConsumables.Columns(cIndex).Width=60
-
-     cIndex=gvElectricalConsumables.Columns.Add("NominalConsumptionAmps","Nominal Amps") 
-     gvElectricalConsumables.Columns(cIndex).DataPropertyName="NominalConsumptionAmps"
-     gvElectricalConsumables.Columns(cIndex).Width=50
-
-     cIndex=gvElectricalConsumables.Columns.Add("PhaseIdle_TractionOn","PhaseIdle\n/TractionOn") 
-     gvElectricalConsumables.Columns(cIndex).DataPropertyName="PhaseIdle_TractionOn"
-     gvElectricalConsumables.Columns(cIndex).Width=50
-
-
-     cIndex=gvElectricalConsumables.Columns.Add("NumberInActualVehicle","Num in Vehicle") 
-     gvElectricalConsumables.Columns(cIndex).DataPropertyName="NumberInActualVehicle"
-     gvElectricalConsumables.Columns(cIndex).Width=50
+     cIndex = gvElectricalConsumables.Columns.Add("Category", "Category")
+     gvElectricalConsumables.Columns(cIndex).DataPropertyName = "Category"
+     gvElectricalConsumables.Columns(cIndex).MinimumWidth = 150
+     gvElectricalConsumables.Columns(cIndex).ReadOnly = True
+
+     cIndex = gvElectricalConsumables.Columns.Add("ConsumerName", "Name")
+
+     gvElectricalConsumables.Columns(cIndex).DataPropertyName = "ConsumerName"
+     gvElectricalConsumables.Columns(cIndex).MinimumWidth = 300
+     gvElectricalConsumables.Columns(cIndex).ReadOnly = True
+
+     Dim baseVehicle As New DataGridViewCheckBoxColumn(False)
+     baseVehicle.HeaderText = "BaseVehicle"
+     cIndex = gvElectricalConsumables.Columns.Add(baseVehicle)
+     gvElectricalConsumables.Columns(cIndex).DataPropertyName = "BaseVehicle"
+     gvElectricalConsumables.Columns(cIndex).Width = 75
+
+     cIndex = gvElectricalConsumables.Columns.Add("NominalConsumptionAmps", "Nominal Amps")
+     gvElectricalConsumables.Columns(cIndex).DataPropertyName = "NominalConsumptionAmps"
+     gvElectricalConsumables.Columns(cIndex).Width = 50
+
+     cIndex = gvElectricalConsumables.Columns.Add("PhaseIdle_TractionOn", "PhaseIdle\n/TractionOn")
+     gvElectricalConsumables.Columns(cIndex).DataPropertyName = "PhaseIdle_TractionOn"
+     gvElectricalConsumables.Columns(cIndex).Width = 50
+
+
+     cIndex = gvElectricalConsumables.Columns.Add("NumberInActualVehicle", "Num in Vehicle")
+     gvElectricalConsumables.Columns(cIndex).DataPropertyName = "NumberInActualVehicle"
+     gvElectricalConsumables.Columns(cIndex).Width = 50
+
+     'ResultCard Grids
+     'IDLE
+     cIndex = gvResultsCardIdle.Columns.Add("Amps", "Amps")
+     gvResultsCardIdle.Columns(cIndex).DataPropertyName = "Amps"
+     gvResultsCardIdle.Columns(cIndex).Width = 65
+
+     cIndex = gvResultsCardIdle.Columns.Add("SmartAmps", "SmartAmps")
+     gvResultsCardIdle.Columns(cIndex).DataPropertyName = "SmartAmps"
+     gvResultsCardIdle.Columns(cIndex).Width = 65
+
+     'TRACTION
+     cIndex = gvResultsCardTraction.Columns.Add("Amps", "Amps")
+     gvResultsCardTraction.Columns(cIndex).DataPropertyName = "Amps"
+     gvResultsCardTraction.Columns(cIndex).Width = 65
+
+     cIndex = gvResultsCardTraction.Columns.Add("SmartAmps", "SmartAmps")
+     gvResultsCardTraction.Columns(cIndex).DataPropertyName = "SmartAmps"
+     gvResultsCardTraction.Columns(cIndex).Width = 65
+
+     'OVERRUN
+     cIndex = gvResultsCardOverrun.Columns.Add("Amps", "Amps")
+     gvResultsCardOverrun.Columns(cIndex).DataPropertyName = "Amps"
+     gvResultsCardOverrun.Columns(cIndex).Width = 65
+
+     cIndex = gvResultsCardOverrun.Columns.Add("SmartAmps", "SmartAmps")
+     gvResultsCardOverrun.Columns(cIndex).DataPropertyName = "SmartAmps"
+     gvResultsCardOverrun.Columns(cIndex).Width = 65
+
+
 
 End Sub
 
-Private Sub CreateBindings
+Private Sub CreateBindings()
 
      'AuxEnvironment.Vecto Bindings
      txtPowernetVoltage.DataBindings.Add("Text", auxEnvironment.VectoInputs, "PowerNetVoltage")
-     txtVehicleWeightKG.DataBindings.Add("Text",auxEnvironment.VectoInputs,"VehicleWeightKG")
-     cboCycle.DataBindings.Add("Text",auxEnvironment.VectoInputs,"Cycle")
+     txtVehicleWeightKG.DataBindings.Add("Text", auxEnvironment.VectoInputs, "VehicleWeightKG")
+     cboCycle.DataBindings.Add("Text", auxEnvironment.VectoInputs, "Cycle")
 
      'Electricals General
-     txtAlternatorMapPath.DataBindings.Add("Text",auxEnvironment.ElectricalUserInputsConfig,"AlternatorMap")
-     txtAlternatorGearEfficiency.DataBindings.Add("Text", auxEnvironment.ElectricalUserInputsConfig,"AlternatorGearEfficiency")
-     txtDoorActuationTimeSeconds.DataBindings.Add("Text",auxEnvironment.ElectricalUserInputsConfig,"DoorActuationTimeSecond")
-     chkSmartElectricals.DataBindings.Add("Checked",auxEnvironment.ElectricalUserInputsConfig,"SmartElectrical")
+     txtAlternatorMapPath.DataBindings.Add("Text", auxEnvironment.ElectricalUserInputsConfig, "AlternatorMap")
+     txtAlternatorGearEfficiency.DataBindings.Add("Text", auxEnvironment.ElectricalUserInputsConfig, "AlternatorGearEfficiency")
+     txtDoorActuationTimeSeconds.DataBindings.Add("Text", auxEnvironment.ElectricalUserInputsConfig, "DoorActuationTimeSecond")
+     chkSmartElectricals.DataBindings.Add("Checked", auxEnvironment.ElectricalUserInputsConfig, "SmartElectrical")
 
      'ConsumablesGrid
-     gvElectricalConsumables.DataSource = auxEnvironment.ElectricalUserInputsConfig.ElectricalConsumers.Items
+     Dim electricalConsumerBinding As New BindingList(Of IElectricalConsumer)(auxEnvironment.ElectricalUserInputsConfig.ElectricalConsumers.Items )
+     gvElectricalConsumables.DataSource = electricalConsumerBinding
 
      'ResultCards
 
+         'IDLE
+         Dim idleBinding = new BindingList(Of SmartResult)
+         idleBinding = New BindingList(Of SmartResult)(auxEnvironment.ElectricalUserInputsConfig.ResultCardIdle)
+         idleBinding.AllowNew=true   
+         gvResultsCardIdle.DataSource=idleBinding 
+                
+         'TRACTION
+         Dim tractionBinding As BindingList(Of SmartResult)
+         tractionBinding = New BindingList(Of SmartResult)(auxEnvironment.ElectricalUserInputsConfig.ResultCardTraction)
+         tractionBinding.AllowNew=true   
+         gvResultsCardTraction.DataSource = tractionBinding
+        
+         'OVERRUN
+         Dim overrunBinding As BindingList(Of SmartResult)
+         overrunBinding = New BindingList(Of SmartResult)(auxEnvironment.ElectricalUserInputsConfig.ResultCardOverrun)
+         overrunBinding.AllowNew=true   
+         gvResultsCardOverrun.DataSource=overrunBinding
+
 
 
 End Sub
 
 
-Private Sub gvElectricalConsumables_CellEndEdit( sender As Object,  e As DataGridViewCellEventArgs) Handles gvElectricalConsumables.CellEndEdit
+
+
+
+Private Sub gvElectricalConsumables_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles gvElectricalConsumables.CellEndEdit
 
 End Sub
 
 
 
 
-Private Sub gvElectricalConsumables_CellValidating( sender As Object,  e As DataGridViewCellValidatingEventArgs) Handles gvElectricalConsumables.CellValidating
+Private Sub gvElectricalConsumables_CellValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handles gvElectricalConsumables.CellValidating
 
 
    Dim column As DataGridViewColumn = gvElectricalConsumables.Columns(e.ColumnIndex)
    Dim message As String = String.Empty
-   
-   If Not column.ReadOnly then
+
+   If Not column.ReadOnly Then
        e.Cancel = Not IsValidElectricalConsumableEdit(column, e.FormattedValue, message)
    End If
 
-      
+
 
 
 
 End Sub
 
 
-Private Function IsValidElectricalConsumableEdit( column As DataGridViewColumn, val As String , byref  message As string) As Boolean
+Private Function IsValidElectricalConsumableEdit(column As DataGridViewColumn, val As String, ByRef message As String) As Boolean
 
-    dim s As Single
+    Dim s As Single
 
-    Dim tip =  column.CellType
+    Dim tip = column.CellType
 
 
 
     Select Case column.Name
 
-     case "NominalConsumptionAmps"
-           Return true
+     Case "NominalConsumptionAmps"
+           Return True
 
-     case "NumberInActualVehicle"
-           If not IsNumeric(val) 
+     Case "NumberInActualVehicle"
+           If Not IsNumeric(val) Then
              MessageBox.Show("This value must be numeric")
-             Return false
-          Else     
+             Return False
+          Else
             s = Single.Parse(val)
            End If
-           If s MOD 1 > 0 orelse s<0 then
+           If s Mod 1 > 0 OrElse s < 0 Then
               MessageBox.Show("This value must be a positive whole number ( Integer ) ")
-              Return false
+              Return False
            End If
 
 
-     case "PhaseIdle_TractionOn"
-           If not IsNumeric(val) 
+     Case "PhaseIdle_TractionOn"
+           If Not IsNumeric(val) Then
              MessageBox.Show("This value must be numeric")
-             Return false
-           Else     
+             Return False
+           Else
             s = Single.Parse(val)
            End If
-           If s < 0 orelse s>1 then
+           If s < 0 OrElse s > 1 Then
               MessageBox.Show("This must be a value between 0 and 1 ")
-              Return false
+              Return False
            End If
-           
+
 
     End Select
 
 
 
-    Return true
+    Return True
 
 End Function
 
 
+Private Sub Panel1_Paint( sender As Object,  e As PaintEventArgs) Handles Panel1.Paint
+
+End Sub
 End Class
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/AuxillaryEnvironment.vb b/VECTOAux/VectoAuxiliaries/AuxillaryEnvironment.vb
index 3aec62734921e8c2125ba13e9653adefd694ce3b..fe84ac2a1b76cb2a41652d07edd7dbf1df1fe61f 100644
--- a/VECTOAux/VectoAuxiliaries/AuxillaryEnvironment.vb
+++ b/VECTOAux/VectoAuxiliaries/AuxillaryEnvironment.vb
@@ -15,8 +15,8 @@ Public Class AuxillaryEnvironment
 
 
  'Pneumatics
- Private Property PneumaticUserInputsConfig As IPneumaticUserInputsConfig
- Private Property PneumaticAuxillariesConfig As IPneumaticsAuxilliariesConfig
+public Property PneumaticUserInputsConfig As IPneumaticUserInputsConfig
+public Property PneumaticAuxillariesConfig As IPneumaticsAuxilliariesConfig
 
  'Hvac
  Public Property  HvacUserInputsConfig As IHVACUserInputsConfig
@@ -49,9 +49,9 @@ Private Sub setDefaults()
  ElectricalUserInputsConfig = New  ElectricsUserInputsConfig() With {.DoorActuationTimeSecond=4, 
                                                                      .ElectricalConsumers= New ElectricalConsumerList(VectoInputs.PowerNetVoltage,0.1,true),
                                                                      .PowerNetVoltage= VectoInputs.PowerNetVoltage,
-                                                                     .ResultCardIdleAmps= New Dictionary(Of Single, Single),
-                                                                     .ResultCardOverrunAmps= New Dictionary(Of Single, Single),
-                                                                     .ResultCardTractionAmps=New Dictionary(Of Single, Single),
+                                                                     .ResultCardIdle= New List(Of SmartResult),
+                                                                     .ResultCardOverrun= New List(Of SmartResult),
+                                                                     .ResultCardTraction=New List(Of SmartResult),
                                                                      .SmartElectrical=True}
 
  HvacUserInputsConfig = New HVACUserInputsConfig(1,1,New HVACInputs(),"HVACMAPPATHGOESHERE.CSV")
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/ElectricalConsumer.vb b/VECTOAux/VectoAuxiliaries/Electrics/ElectricalConsumer.vb
index a614383cff86812dd3732bd69775e7f532e48ffc..9c2b5d02a755c862f5a9fea07cb21080fc039da1 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/ElectricalConsumer.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/ElectricalConsumer.vb
@@ -7,11 +7,6 @@
     Public Class ElectricalConsumer
         Implements IElectricalConsumer
 
-
-
-
-
-
         'Calculated
         Private Property AvgConsumptionAmps As Single Implements IElectricalConsumer.AvgConsumptionAmps
 
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/ElectricsUserInputsConfig.vb b/VECTOAux/VectoAuxiliaries/Electrics/ElectricsUserInputsConfig.vb
index cd8cf9390c2831acf1c0458bb8eb83afae5fca5c..ffb24cbfbc7cf79b2b2b16d7c29e85b247023ac2 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/ElectricsUserInputsConfig.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/ElectricsUserInputsConfig.vb
@@ -12,9 +12,9 @@ Public Property ElectricalConsumers As IElectricalConsumerList Implements IElect
 Public Property DoorActuationTimeSecond As Integer Implements IElectricsUserInputsConfig.DoorActuationTimeSecond
 
 
-Public Property ResultCardIdleAmps As Dictionary(Of Single, Single) Implements IElectricsUserInputsConfig.ResultCardIdleAmps
-Public Property ResultCardTractionAmps As Dictionary(Of Single, Single) Implements IElectricsUserInputsConfig.ResultCardTractionAmps
-Public Property ResultCardOverrunAmps As Dictionary(Of Single, Single) Implements IElectricsUserInputsConfig.ResultCardOverrunAmps
+Public Property ResultCardIdle As List(Of SmartResult) Implements IElectricsUserInputsConfig.ResultCardIdle
+Public Property ResultCardTraction As List(Of SmartResult) Implements IElectricsUserInputsConfig.ResultCardTraction
+Public Property ResultCardOverrun As List(Of SmartResult) Implements IElectricsUserInputsConfig.ResultCardOverrun
 
 Public Property SmartElectrical As Boolean Implements IElectricsUserInputsConfig.SmartElectrical
 
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/IElectricsUserInputsConfig.vb b/VECTOAux/VectoAuxiliaries/Electrics/IElectricsUserInputsConfig.vb
index b028e5270e2c6af7954d426b548d1162f1ad67a3..a638b2cb8c9cd4e7d2cc33b8f8abbb2e7f13f69a 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/IElectricsUserInputsConfig.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/IElectricsUserInputsConfig.vb
@@ -10,9 +10,9 @@ Property AlternatorGearEfficiency As Single
 Property ElectricalConsumers As IElectricalConsumerList
 Property DoorActuationTimeSecond As Integer
 
-Property ResultCardIdleAmps As Dictionary(Of Single, Single)
-Property ResultCardTractionAmps As Dictionary(Of Single, Single)
-Property ResultCardOverrunAmps As Dictionary(Of Single, Single)
+Property ResultCardIdle As List(Of SmartResult)
+Property ResultCardTraction As List(Of SmartResult)
+Property ResultCardOverrun As List(Of SmartResult)
 Property SmartElectrical As Boolean
 
 End Interface
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/IResultCard.vb b/VECTOAux/VectoAuxiliaries/Electrics/IResultCard.vb
index 60bcf230cf178473b34683a5c567415d970664f5..7dd89cb27af70bb25b13f0f974ecf7f97d1f28e0 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/IResultCard.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/IResultCard.vb
@@ -2,7 +2,7 @@
 
 Public Interface IResultCard
 
-Function GetSmartCurrentResult(key As Single) As Single
+Function GetSmartCurrentResult(Amps As Single) As Single
 
 End Interface
 
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/ResultCard.vb b/VECTOAux/VectoAuxiliaries/Electrics/ResultCard.vb
index 5f15e1d1423e719fef391e30b8d1abe16fd96083..ae323a398cf3bb83d8198403b6fde4d27fba268d 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/ResultCard.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/ResultCard.vb
@@ -7,12 +7,12 @@ Public Class ResultCard
 Implements IResultCard
 
 
-Private _results As Dictionary(Of Single, Single)
+Private _results As List(Of SmartResult)
 
 
-Public Sub New(results As Dictionary(Of Single, Single))
+Public Sub New(results As List( of SmartResult))
 
-   If results Is Nothing Then Throw New ArgumentException("A dictionary of smart results must be supplied.")
+   If results Is Nothing Then Throw New ArgumentException("A list of smart results must be supplied.")
 
   _results = results
 
@@ -21,18 +21,18 @@ End Sub
 
 
 
-Public Function GetSmartCurrentResult(key As Single) As Single Implements IResultCard.GetSmartCurrentResult
+Public Function GetSmartCurrentResult(amps As Single) As Single Implements IResultCard.GetSmartCurrentResult
 
 
   If _results.Count<2 then Return 0.1
 
-  Return GetOrInterpolate(key)
+  Return GetOrInterpolate(amps)
 
 
 End Function
 
 
-Private Function GetOrInterpolate(key As Single) As Single
+Private Function GetOrInterpolate(amps As Single) As Single
 
 Dim pre As Single
 Dim post As Single
@@ -43,51 +43,52 @@ Dim smartAmps As Single
 Dim maxKey As Single
 Dim minKey As Single
 
-     maxKey = (From k In _results Select k).Last.Key
-     minKey = (From k In _results Select k).First.Key
+     maxKey = _results.Max.Amps
+     minKey = _results.Min.Amps
 
+     Dim compareKey As SmartResult = New SmartResult( amps,0)
 
      'Is on boundary check
-     If _results.ContainsKey(key) Then Return _results(key)
+     If _results.Contains(compareKey) Then Return _results.OrderBy( Function(x) x.Amps).First( Function( x ) x.Amps=compareKey.Amps ).SmartAmps
 
      'Is over map - Extrapolate
-     If key > maxKey Then
+     If amps > maxKey Then
 
             'get the entries before and after the supplied key
-             pre = (From m In _results Order By m.Key Where m.Key < maxKey Select m).Last().Key
+             pre = (From a In _results Order By a.amps  Where a.amps < maxKey Select a ).Last().Amps
              post = maxKey
 
             'get the delta values 
              dAmps = post - pre
-             dSmartAmps = _results(post) - _results(pre)
+             dSmartAmps = ( From da In _results Order By da.Amps Where da.Amps=post ).First().SmartAmps - ( From da In _results Order By da.Amps Where da.Amps=pre ).First().SmartAmps
 
             'calculate the slopes
              smartAmpsSlope = dSmartAmps / dAmps
 
             'calculate the new values
-             smartAmps = ((key - post) * smartAmpsSlope) + _results(post)
+             smartAmps = ((amps - post) * smartAmpsSlope) + ( From da In _results Order By da.Amps Where da.Amps=post ).First().SmartAmps
 
              Return smartAmps
 
      End If
 
      'Is under map - Extrapolate
-     If key < minKey Then
+     If amps < minKey Then
 
             'get the entries before and after the supplied key
             'Post is the first entry and pre is the penultimate to first entry
              post = minKey
-             pre = (From k In _results Order By k.Key Where k.Key > minKey Select k).First.Key
+             pre = (From k In _results Order By k.amps Where k.amps > minKey Select k).First().Amps
 
             'get the delta values 
              dAmps = post - pre
-             dSmartAmps = _results(post) - _results(pre)
+             dSmartAmps = ( From da In _results Order By da.Amps Where da.Amps=post ).First().SmartAmps - ( From da In _results Order By da.Amps Where da.Amps=pre ).First().SmartAmps
 
             'calculate the slopes
              smartAmpsSlope = dSmartAmps / dAmps
 
             'calculate the new values
-             smartAmps = ((key - post) * smartAmpsSlope) + _results(post)
+             smartAmps = ((amps - post) * smartAmpsSlope) + ( From da In _results Order By da.Amps Where da.Amps=post ).First().SmartAmps
 
              Return smartAmps
      End If
@@ -95,18 +96,18 @@ Dim minKey As Single
      'Is Inside map - Interpolate
 
             'get the entries before and after the supplied rpm
-             pre = (From m In _results Where m.Key < key Select m).Last().Key
-             post = (From m In _results Where m.Key > key Select m).First().Key
+             pre = (From m In _results Order By m.amps Where m.amps < amps Select m).Last().Amps
+             post = (From m In _results Where m.amps > amps Select m).First().Amps
 
             'get the delta values for rpm and the map values
              dAmps = post - pre
-             dSmartAmps = _results(post) - _results(pre)
+             dSmartAmps =  ( From da In _results Order By da.Amps Where da.Amps=post ).First().SmartAmps - ( From da In _results Order By da.Amps Where da.Amps=pre ).First().SmartAmps
 
             'calculate the slopes
              smartAmpsSlope = dSmartAmps / dAmps
 
             'calculate the new values
-             smartAmps = ((key - pre) * smartAmpsSlope) + _results(pre)
+             smartAmps = ((amps - post) * smartAmpsSlope) + ( From da In _results Order By da.Amps Where da.Amps=post ).First().SmartAmps
 
 
             Return smartAmps
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/SmartResult.vb b/VECTOAux/VectoAuxiliaries/Electrics/SmartResult.vb
new file mode 100644
index 0000000000000000000000000000000000000000..26e8620eb29a79b92cb0a8107107a08ac51edfd2
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/Electrics/SmartResult.vb
@@ -0,0 +1,58 @@
+Namespace Electrics
+
+Public Class SmartResult
+Implements IComparable(Of SmartResult)
+
+
+Public Property Amps As Single
+
+Public Property SmartAmps As Single
+
+Public Sub new ()
+
+
+End Sub
+
+Public Sub new( amps As Single , smartAmps As single)
+
+  Me.Amps = amps
+  Me.SmartAmps = smartAmps
+
+End Sub
+
+
+
+    Public Function CompareTo(other As SmartResult) As Integer Implements IComparable(Of SmartResult).CompareTo
+
+
+    If other.Amps> Me.Amps then   return -1
+    If other.Amps=Me.Amps then Return 0  
+  
+    Return 1
+
+
+    End Function
+
+
+        Public Overrides Function Equals(obj As Object) As Boolean
+            
+            Dim other as SmartResult = Ctype( Obj, SmartResult )
+
+            Return Me.Amps=other.Amps
+
+        End Function
+
+        Public Overrides Function GetHashCode() As Integer
+            Return 0
+        End Function
+
+
+
+End Class
+
+
+
+End Namespace
+
+
+
diff --git a/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj b/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj
index b3c951f8494fb857164de629a390d48c880fdc98..b860c5c423177f6bdb2865d2cf584e93c8667d63 100644
--- a/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj
+++ b/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj
@@ -85,6 +85,7 @@
     <Compile Include="Electrics\IM0_NonSmart_AlternatorsSetEfficiency.vb" />
     <Compile Include="Electrics\M5__SmartAlternatorSetGeneration.vb" />
     <Compile Include="Electrics\ResultCard.vb" />
+    <Compile Include="Electrics\SmartResult.vb" />
     <Compile Include="Hvac\HVACConstants.vb" />
     <Compile Include="Hvac\HVACInputs.vb" />
     <Compile Include="Electrics\IElectricalConsumerList.vb" />
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
index 066b1019861aecd85a841f21df844a3a649cec2a..e079c085c8e54c7502baef9b58ac4e7af027c1a2 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
@@ -32,9 +32,9 @@ signals.EngineSpeed=2000
 Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers,hvacInputs,hvacMap,alternatoMap,26.3,signals)
 
 'Results Cards
-Dim readings = new Dictionary(Of single, single)
-readings.Add(10,8)
-readings.Add(70,63)
+Dim readings = new List(of SmartResult)
+readings.Add(new SmartResult(10,8))
+readings.Add(New SmartResult(70,63))
 
 Dim idleResult As New ResultCard(readings)
 Dim tractionResult As New ResultCard(readings)
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
index 9d57a70bed6fbb62cd5feb1b3cec20be54d02322..c7c491f5ef23f511b9681ee70212a5ad15d4794b 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
@@ -35,9 +35,9 @@ alternatoMap.Initialise()
 Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers,hvacInputs,hvacMap,alternatoMap,_powerNetVoltage,_signals)
 
 'Results Cards
-Dim readings = new Dictionary(Of single, single)
-readings.Add(10,8)
-readings.Add(70,63)
+Dim readings = new List(Of SmartResult)
+readings.Add( New SmartResult(10,8))
+readings.Add( New SmartResult(70,63))
 
 Dim idleResult As New ResultCard(readings)
 Dim tractionResult As New ResultCard(readings)
@@ -64,10 +64,10 @@ Public Sub  PowerAtCrankIdleWatts()
 
  Initialise()
  _target = New M5__SmartAlternatorSetGeneration(_m05,_powerNetVoltage,_altGearPullyEfficiency)
- Dim expected As Single =1681.42822
+ Dim expected As Single =1681.428f
  Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankIdleWatts(_rpm)
 
- Assert.AreEqual( expected, actual)
+ Assert.AreEqual( expected, CType(Math.Round( actual,3), Single))
 
 End Sub
 
@@ -76,10 +76,10 @@ Public Sub  PowerAtCrankTractionWatts()
 
  Initialise()
  _target = New M5__SmartAlternatorSetGeneration(_m05,_powerNetVoltage,_altGearPullyEfficiency)
- Dim expected As Single =1681.42822
+ Dim expected As Single =1681.428
  Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankTractionOnWatts(_rpm)
 
- Assert.AreEqual( expected, actual)
+ Assert.AreEqual( expected, CType(Math.Round(actual,3),Single))
 
 End Sub
 
@@ -88,10 +88,11 @@ Public Sub  PowerAtCrankOverrunWatts()
 
  Initialise()
  _target = New M5__SmartAlternatorSetGeneration(_m05,_powerNetVoltage,_altGearPullyEfficiency)
- Dim expected As Single =1681.42822
+ Dim expected As Single =1681.428
+
  Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankOverrunWatts(_rpm)
 
- Assert.AreEqual( expected, actual)
+ Assert.AreEqual( expected,CType( Math.Round(actual,3),Single))
 
 End Sub
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/ResultCardTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/ResultCardTests.vb
index 4ca94fbd5d1a9f013e4b3d1303961ecd3fc9cc61..bb2e0d1333eee0a6c8180ddf1884c1bc15eef9d2 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/ResultCardTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/ResultCardTests.vb
@@ -4,19 +4,33 @@ Imports VectoAuxiliaries.Electrics
 <TestFixture()>
 Public Class ResultCardTests
 
-Private results As New Dictionary(Of Single, Single)
+Private results As New List(Of SmartResult)
+Private unorderedResults As New List(of SmartResult)
+
 Private resultCard As ResultCard
+Private unorderedResultCard As ResultCard
+
 
 Public Sub New()
 
-results.Add(20, 18)
-results.Add(30, 27)
-results.Add(40, 36)
-results.Add(50, 45)
+results.Add(new SmartResult(20, 18))
+results.Add(new SmartResult(30, 27))
+results.Add(new SmartResult(40, 36))
+results.Add(new SmartResult(50, 45))
+
+unorderedResults.Add(new SmartResult(40, 36))
+unorderedResults.Add(new SmartResult(30, 27))
+unorderedResults.Add(new SmartResult(50, 45))
+unorderedResults.Add(new SmartResult(20, 18))
+
 'results.Add(60, 54)
 
 resultCard = New ResultCard(results)
 
+unorderedResultCard = New ResultCard( unorderedResults)
+
+
+
 End Sub
 
 
@@ -52,6 +66,18 @@ Assert.AreEqual(expected, actual)
 
 End Sub
 
+
+<Test()>
+Public Sub UnorderedGetBotomBoundryValueTest()
+
+Dim expected As Single = 18
+Dim actual As Single = unorderedResultCard.GetSmartCurrentResult(20)
+
+Assert.AreEqual(expected, actual)
+
+End Sub
+
+
 <Test()>
 Public Sub GetCentreBoundayValueTest()
 
@@ -64,6 +90,18 @@ Assert.AreEqual(expected, actual)
 End Sub
 
 
+<Test()>
+Public Sub UnorderedGetCentreBoundayValueTest()
+
+Dim expected As Single = 36
+Dim actual As Single = unorderedResultCard.GetSmartCurrentResult(40)
+
+Assert.AreEqual(expected, actual)
+
+
+End Sub
+
+
 <Test()>
 Public Sub GetTopBoundaryValueTest()
 
@@ -74,6 +112,17 @@ Assert.AreEqual(expected, actual)
 
 End Sub
 
+<Test()>
+Public Sub UnorderedGetTopBoundaryValueTest()
+
+Dim expected As Single = 45
+Dim actual As Single = unorderedResultCard.GetSmartCurrentResult(50)
+
+Assert.AreEqual(expected, actual)
+
+End Sub
+
+
 <Test()>
 Public Sub GetInterpolatedValue35AmpsTest()
 
@@ -84,6 +133,17 @@ Assert.AreEqual(expected, actual)
 
 End Sub
 
+
+<Test()>
+Public Sub UnorderedGetInterpolatedValue35AmpsTest()
+
+Dim expected As Single = 31.5
+Dim actual As Single = unorderedResultCard.GetSmartCurrentResult(35)
+
+Assert.AreEqual(expected, actual)
+
+End Sub
+
 <Test()>
 Public Sub GetExtrapolatedValue60AmpsTest()
 
@@ -94,6 +154,16 @@ Assert.AreEqual(expected, actual)
 
 End Sub
 
+<Test()>
+Public Sub UnorderedGetExtrapolatedValue60AmpsTest()
+
+Dim expected As Single = 54
+Dim actual As Single = unorderedResultCard.GetSmartCurrentResult(60)
+
+Assert.AreEqual(expected, actual)
+
+End Sub
+
 <Test()>
 Public Sub GetExtrapolatedValue10AmpsTest()
 
@@ -104,10 +174,21 @@ Assert.AreEqual(expected, actual)
 
 End Sub
 
+<Test()>
+Public Sub UnorderedGetExtrapolatedValue10AmpsTest()
+
+Dim expected As Single = 9
+Dim actual As Single = unorderedResultCard.GetSmartCurrentResult(10)
+
+Assert.AreEqual(expected, actual)
+
+End Sub
+
+
 <Test()>
 Public Sub EmptyOrInsufficientResultsTest()
 
-Dim resultSet As New Dictionary(of single , Single )
+Dim resultSet As new List(Of SmartResult)
 
 Dim expected As Single = 0.1
 Dim actual As Single = (New ResultCard(resultSet)).GetSmartCurrentResult(10)