diff --git a/VECTOAux/AUXUITEST/LaunchPad.Designer.vb b/VECTOAux/AUXUITEST/LaunchPad.Designer.vb
index 472ef76f45ce6f073986c68d262da7eab245c3cc..a3c40478ea1db2a5118da1373c0a2af390f2b1c1 100644
--- a/VECTOAux/AUXUITEST/LaunchPad.Designer.vb
+++ b/VECTOAux/AUXUITEST/LaunchPad.Designer.vb
@@ -23,6 +23,7 @@ Partial Class LaunchPad
     <System.Diagnostics.DebuggerStepThrough()> _
     Private Sub InitializeComponent()
         Me.btnHVAC = New System.Windows.Forms.Button()
+        Me.btnCompressor = New System.Windows.Forms.Button()
         Me.SuspendLayout()
         '
         'btnHVAC
@@ -34,11 +35,21 @@ Partial Class LaunchPad
         Me.btnHVAC.Text = "HVAC"
         Me.btnHVAC.UseVisualStyleBackColor = True
         '
+        'btnCompressor
+        '
+        Me.btnCompressor.Location = New System.Drawing.Point(164, 26)
+        Me.btnCompressor.Name = "btnCompressor"
+        Me.btnCompressor.Size = New System.Drawing.Size(106, 46)
+        Me.btnCompressor.TabIndex = 1
+        Me.btnCompressor.Text = "Compressor"
+        Me.btnCompressor.UseVisualStyleBackColor = True
+        '
         'LaunchPad
         '
         Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
         Me.ClientSize = New System.Drawing.Size(426, 335)
+        Me.Controls.Add(Me.btnCompressor)
         Me.Controls.Add(Me.btnHVAC)
         Me.Name = "LaunchPad"
         Me.Text = "LaunchPad"
@@ -46,4 +57,5 @@ Partial Class LaunchPad
 
     End Sub
     Friend WithEvents btnHVAC As System.Windows.Forms.Button
+    Friend WithEvents btnCompressor As System.Windows.Forms.Button
 End Class
diff --git a/VECTOAux/AUXUITEST/LaunchPad.vb b/VECTOAux/AUXUITEST/LaunchPad.vb
index b135e84f2fd8e7758b941b91e3def441f9d46c8f..43404e6fbcf07f6545ffbe19b842bc72d1407fe3 100644
--- a/VECTOAux/AUXUITEST/LaunchPad.vb
+++ b/VECTOAux/AUXUITEST/LaunchPad.vb
@@ -6,19 +6,21 @@
         Dim frm As New VectoAuxiliaries.UI.F_HVAC()
 
         frm.Show()
-
-
     End Sub
 
-
-
     Private Sub LaunchPad_Load(sender As Object, e As EventArgs)
 
+    End Sub
 
+    Private Sub LaunchPad_Activated(sender As Object, e As EventArgs)
 
     End Sub
 
-    Private Sub LaunchPad_Activated(sender As Object, e As EventArgs)
+    Private Sub btnCompressor_Click(sender As Object, e As EventArgs) Handles btnCompressor.Click
+
+        Dim frm As New VectoAuxiliaries.UI.F_Compressor()
+
+        frm.Show()
 
     End Sub
 End Class
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries.sln b/VECTOAux/VectoAuxiliaries.sln
index 5cef2d707033a8eadef517f2723b74729fa1a859..7ed0f4df0757a39cc9cb957a58baee55a49f0d40 100644
--- a/VECTOAux/VectoAuxiliaries.sln
+++ b/VECTOAux/VectoAuxiliaries.sln
@@ -12,21 +12,29 @@ EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
+		Debug|x86 = Debug|x86
 		Release|Any CPU = Release|Any CPU
+		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Release|Any CPU.Build.0 = Release|Any CPU
+		{FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Release|x86.ActiveCfg = Release|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|x86.ActiveCfg = Release|Any CPU
 		{D72E93A7-3EF3-44BD-9859-70BFA89BF5E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{D72E93A7-3EF3-44BD-9859-70BFA89BF5E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D72E93A7-3EF3-44BD-9859-70BFA89BF5E1}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{D72E93A7-3EF3-44BD-9859-70BFA89BF5E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{D72E93A7-3EF3-44BD-9859-70BFA89BF5E1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D72E93A7-3EF3-44BD-9859-70BFA89BF5E1}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/AirCompressor.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/AirCompressor.vb
index 782986b407a97fd34d7ec6727e975d4dbf6ab087..ec9f21e0a4aac4500a8d29626d58c15f9e44bebe 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/AirCompressor.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/AirCompressor.vb
@@ -1,8 +1,6 @@
 
-
 Namespace Pneumatics
 
-
     Public Class AirCompressor
         Implements IAirCompressor
 
@@ -91,6 +89,10 @@ Namespace Pneumatics
         'Power @ Crank From Pnumatics compressor On  ( B )
         'Power   Delta ( A ) vs ( B )
 
+
+        'Return Average Power Demand Per Compressor Unit Flow Rate
+
+
         ''' <summary>
         ''' Returns the flow rate [litres/second] of compressor for the given engine rpm
         ''' </summary>
@@ -150,6 +152,18 @@ Namespace Pneumatics
             End If
         End Function
 
+
+
+
+
+        Public Function GetAveragePowerDemandPerCompressorUnitFlowRate() As Single Implements IAirCompressor.GetAveragePowerDemandPerCompressorUnitFlowRate
+
+            Return _map.GetAveragePowerDemandPerCompressorUnitFlowRate()
+
+        End Function
+
+
+
     End Class
 
 End Namespace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/AveragePneumaticLoadDemand.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/AveragePneumaticLoadDemand.vb
index 33e819f01b2e3c768f07d02c6fd0a0e511c85507..a0da2a3f64f2e803d32d11ab7e406c666b145e7e 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/AveragePneumaticLoadDemand.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/AveragePneumaticLoadDemand.vb
@@ -5,7 +5,7 @@ Namespace Pneumatics
     Public Class AveragePneumaticLoadDemand
 
 
-        Private _map As IAirFlowRateMechanicalDemandMap
+        Private _compressor As IAirCompressor
         Private _pneumaticConsumers As List(Of IPneumaticConsumer)
         Private _pulleyGearEfficiency As Single
 
@@ -34,12 +34,17 @@ Namespace Pneumatics
         End Property
 
         'Constructors
-        Public Sub New(iMap As IAirFlowRateMechanicalDemandMap, iTotalCycleTimeSeconds As Integer, iPulleyGearEfficiency As Single, Optional consumers As List(Of IPneumaticConsumer) = Nothing)
+        Public Sub New(iCompressor As IAirCompressor, iTotalCycleTimeSeconds As Integer, iPulleyGearEfficiency As Single, Optional consumers As List(Of IPneumaticConsumer) = Nothing)
 
-            _map = iMap
+            _compressor = iCompressor
             _pulleyGearEfficiency = iPulleyGearEfficiency
             _TotalCycleTimeSeconds = iTotalCycleTimeSeconds
 
+            If iCompressor.Initialise() <> True Then
+                Throw New ArgumentException("This Module requires a valid compressor")
+            End If
+
+
             If Not consumers Is Nothing AndAlso consumers.Count > 0 Then
                 _pneumaticConsumers = consumers
             Else
@@ -52,22 +57,10 @@ Namespace Pneumatics
         'Get Average Power Demand @ Crank From Pneumatics
         Public Function GetAveragePowerDemandAtCrankFromPneumatics() As Single
 
-            Dim flowPowerRatioSum As Single
             Dim averagePowerDemandPerCompressorUnitFlowRate As Single
             Dim effectiveTotalAirRequired As Single
 
-
-            For Each demand As IPneumaticConsumer In _pneumaticConsumers
-                flowPowerRatioSum += demand.VolumePerCycle / _map.GetPower(demand.VolumePerCycle)
-            Next
-
-            If flowPowerRatioSum = 0 OrElse PneumaticConsumers.Count() = 0 Then
-                averagePowerDemandPerCompressorUnitFlowRate = 0
-            Else
-                averagePowerDemandPerCompressorUnitFlowRate = flowPowerRatioSum / PneumaticConsumers.Count()
-            End If
-
-
+            averagePowerDemandPerCompressorUnitFlowRate = _compressor.GetAveragePowerDemandPerCompressorUnitFlowRate
 
             effectiveTotalAirRequired = GetTotalRequiredAirPerCompressorUnitDeliveryRate() / TotalCycleTimeSeconds
 
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/CompressorMap.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/CompressorMap.vb
index 22f40116ca120bf0a355f1fbfc899dd281708960..f51478beb785d339dc6a32024ceaa0357f15b177 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/CompressorMap.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/CompressorMap.vb
@@ -11,6 +11,11 @@ Namespace Pneumatics
 
         Private ReadOnly filePath As String
 
+        Private _averagePowerDemandPerCompressorUnitFlowRate As Single
+
+
+
+
         ''' <summary>
         ''' Dictionary of values keyed by the rpm valaues in the csv file
         ''' Values are held as a tuple as follows
@@ -21,6 +26,18 @@ Namespace Pneumatics
         ''' <remarks></remarks>
         Private map As Dictionary(Of Integer, CompressorMapValues)
 
+
+        'Returns the AveragePowerDemand ( Power On ) per unit flow rate
+        Public Function AveragePowerDemandPerCompressorUnitFlowRate() As Single Implements ICompressorMap.GetAveragePowerDemandPerCompressorUnitFlowRate
+
+
+
+            Return _averagePowerDemandPerCompressorUnitFlowRate
+
+
+        End Function
+
+
         ''' <summary>
         ''' Creates a new instance of the CompressorMap class
         ''' </summary>
@@ -60,11 +77,22 @@ Namespace Pneumatics
                         End If
                     Next
                 End Using
+
+                'Calculate the Average Power Demand Per Compressor Unit FlowRate
+                Dim powerDividedByFlowRateSum As Single = 0
+                For Each speed As KeyValuePair(Of Integer, CompressorMapValues) In map
+                    powerDividedByFlowRateSum += speed.Value.PowerCompressorOn / speed.Value.FlowRate
+                Next
+                _averagePowerDemandPerCompressorUnitFlowRate = powerDividedByFlowRateSum / map.Count
+
             Else
                 Throw New ArgumentException("supplied input file does not exist")
             End If
 
+            'If we get here then all should be well and we can return a True value of success.
             Return True
+
+
         End Function
 
         ''' <summary>
@@ -150,6 +178,7 @@ Namespace Pneumatics
         ''' Power - Compressor Off
         ''' </summary>
         ''' <remarks></remarks>
+        ''' 
         Private Structure CompressorMapValues
 
             ''' <summary>
@@ -187,6 +216,11 @@ Namespace Pneumatics
 
 
 
-
     End Class
+
+
+
+
+
+
 End Namespace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/IAirCompressor.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/IAirCompressor.vb
index c2770b87ac7799762a3961faf0571cc69b677408..dbaf2e5cbe65c93be63b4b9c561ee7da69dfc219 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/IAirCompressor.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/IAirCompressor.vb
@@ -54,5 +54,13 @@
         ''' <returns></returns>
         ''' <remarks></remarks>
         Function GetPowerDifference(ByVal engineRpm As Integer) As Single
+
+        ''' <summary>
+        ''' Returns Average PoweDemand PeCompressor UnitFlowRate 
+        ''' </summary>
+        ''' <returns></returns>
+        ''' <remarks></remarks>
+        Function GetAveragePowerDemandPerCompressorUnitFlowRate() As Single
+
     End Interface
 End NameSpace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/IAirFlowRateMechanicalDemandMap.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/IAirFlowRateMechanicalDemandMap.vb
deleted file mode 100644
index 9c5af12888017ba62f09ed346559a3db98a2759c..0000000000000000000000000000000000000000
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/IAirFlowRateMechanicalDemandMap.vb
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Namespace Pneumatics
-
-    Public Interface IAirFlowRateMechanicalDemandMap
-
-
-        ''' <summary>
-        ''' Initialises the map with a privately stored field referring to filename and path.
-        ''' </summary>
-        ''' <returns></returns>
-        ''' <remarks></remarks>
-        Function Initialise() As Boolean
-
-        ''' <summary>
-        ''' Gets Power From Map for a given flow rate
-        ''' </summary>
-        ''' <param name="flowRate"></param>
-        ''' <returns></returns>
-        ''' <remarks></remarks>
-        Function GetPower(flowRate As Integer) As Integer
-
-
-    End Interface
-
-End Namespace
-
-
-
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/ICompressorMap.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/ICompressorMap.vb
index 2792a661a72b2cf2de6b47f038480a9592324241..09bfafb3e6bf503ca9cdb2e9c2b983891166b3c4 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/ICompressorMap.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/ICompressorMap.vb
@@ -31,5 +31,9 @@ Namespace Pneumatics
         ''' <remarks>Single</remarks>
         Function GetPowerCompressorOff(ByVal rpm As Integer) As Single
 
+        'Returns Average Power Demand Per Compressor Unit FlowRate
+        Function GetAveragePowerDemandPerCompressorUnitFlowRate() As Single
+
+
     End Interface
 End Namespace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/UI/ElectricalConsumers.Designer.vb b/VECTOAux/VectoAuxiliaries/UI/ElectricalConsumers.Designer.vb
new file mode 100644
index 0000000000000000000000000000000000000000..09f0b80e5f881196112cee6dec4fbc1077328ebf
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/ElectricalConsumers.Designer.vb
@@ -0,0 +1,29 @@
+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class ElectricalConsumers
+    Inherits System.Windows.Forms.Form
+
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+
+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer
+
+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        components = New System.ComponentModel.Container
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.Text = "ElectricalConsumers"
+    End Sub
+End Class
diff --git a/VECTOAux/VectoAuxiliaries/UI/ElectricalConsumers.vb b/VECTOAux/VectoAuxiliaries/UI/ElectricalConsumers.vb
new file mode 100644
index 0000000000000000000000000000000000000000..b80a87b84b9e3fd372ebc07b61891874c48ffd22
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/ElectricalConsumers.vb
@@ -0,0 +1,3 @@
+Public Class ElectricalConsumers
+
+End Class
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_Alternator.Designer.vb b/VECTOAux/VectoAuxiliaries/UI/F_Alternator.Designer.vb
new file mode 100644
index 0000000000000000000000000000000000000000..f42725e4f9f94120b9a86c05033d41f900d826b2
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_Alternator.Designer.vb
@@ -0,0 +1,29 @@
+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class F_Alternator
+    Inherits System.Windows.Forms.Form
+
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+
+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer
+
+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        components = New System.ComponentModel.Container
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.Text = "F_Alternator"
+    End Sub
+End Class
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_Alternator.vb b/VECTOAux/VectoAuxiliaries/UI/F_Alternator.vb
new file mode 100644
index 0000000000000000000000000000000000000000..cbc5117247059b53f888e70ed575beb8f2ab6bbb
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_Alternator.vb
@@ -0,0 +1,3 @@
+Public Class F_Alternator
+
+End Class
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_Compressor.Designer.vb b/VECTOAux/VectoAuxiliaries/UI/F_Compressor.Designer.vb
new file mode 100644
index 0000000000000000000000000000000000000000..beaf6391a9ae5fd5f6afab5936f83868a2ba1998
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_Compressor.Designer.vb
@@ -0,0 +1,184 @@
+
+Namespace UI
+    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+    Partial Class F_Compressor
+        Inherits System.Windows.Forms.Form
+
+        'Form overrides dispose to clean up the component list.
+        <System.Diagnostics.DebuggerNonUserCode()> _
+        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+            Try
+                If disposing AndAlso components IsNot Nothing Then
+                    components.Dispose()
+                End If
+            Finally
+                MyBase.Dispose(disposing)
+            End Try
+        End Sub
+
+        'Required by the Windows Form Designer
+        Private components As System.ComponentModel.IContainer
+
+        'NOTE: The following procedure is required by the Windows Form Designer
+        'It can be modified using the Windows Form Designer.  
+        'Do not modify it using the code editor.
+        <System.Diagnostics.DebuggerStepThrough()> _
+        Private Sub InitializeComponent()
+            Me.lblPullyEfficiency = New System.Windows.Forms.Label()
+            Me.txtPullyEfficiency = New System.Windows.Forms.TextBox()
+            Me.lblMapFile = New System.Windows.Forms.Label()
+            Me.txtMapFile = New System.Windows.Forms.TextBox()
+            Me.btnBrowseMap = New System.Windows.Forms.Button()
+            Me.btnCancel = New System.Windows.Forms.Button()
+            Me.btnSave = New System.Windows.Forms.Button()
+            Me.lblMapLabel = New System.Windows.Forms.Label()
+            Me.txtMapPath = New System.Windows.Forms.TextBox()
+            Me.btnBrowsePowerMap = New System.Windows.Forms.Button()
+            Me.lblPulleyGearRatio = New System.Windows.Forms.Label()
+            Me.txtPulleyEfficiency = New System.Windows.Forms.TextBox()
+            Me.SuspendLayout()
+            '
+            'lblPullyEfficiency
+            '
+            Me.lblPullyEfficiency.AutoSize = True
+            Me.lblPullyEfficiency.Location = New System.Drawing.Point(6, 63)
+            Me.lblPullyEfficiency.Name = "lblPullyEfficiency"
+            Me.lblPullyEfficiency.Size = New System.Drawing.Size(87, 13)
+            Me.lblPullyEfficiency.TabIndex = 21
+            Me.lblPullyEfficiency.Text = " Pully Efficiency :"
+            '
+            'txtPullyEfficiency
+            '
+            Me.txtPullyEfficiency.Location = New System.Drawing.Point(105, 60)
+            Me.txtPullyEfficiency.Name = "txtPullyEfficiency"
+            Me.txtPullyEfficiency.Size = New System.Drawing.Size(46, 20)
+            Me.txtPullyEfficiency.TabIndex = 20
+            '
+            'lblMapFile
+            '
+            Me.lblMapFile.AutoSize = True
+            Me.lblMapFile.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+            Me.lblMapFile.Location = New System.Drawing.Point(-52, -32)
+            Me.lblMapFile.Name = "lblMapFile"
+            Me.lblMapFile.Size = New System.Drawing.Size(34, 13)
+            Me.lblMapFile.TabIndex = 18
+            Me.lblMapFile.Text = "Map :"
+            '
+            'txtMapFile
+            '
+            Me.txtMapFile.Location = New System.Drawing.Point(-13, -35)
+            Me.txtMapFile.Name = "txtMapFile"
+            Me.txtMapFile.ReadOnly = True
+            Me.txtMapFile.Size = New System.Drawing.Size(530, 20)
+            Me.txtMapFile.TabIndex = 17
+            '
+            'btnBrowseMap
+            '
+            Me.btnBrowseMap.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+            Me.btnBrowseMap.Location = New System.Drawing.Point(523, -35)
+            Me.btnBrowseMap.Name = "btnBrowseMap"
+            Me.btnBrowseMap.Size = New System.Drawing.Size(75, 23)
+            Me.btnBrowseMap.TabIndex = 16
+            Me.btnBrowseMap.Text = "Browse"
+            Me.btnBrowseMap.UseVisualStyleBackColor = True
+            '
+            'btnCancel
+            '
+            Me.btnCancel.Location = New System.Drawing.Point(518, 113)
+            Me.btnCancel.Name = "btnCancel"
+            Me.btnCancel.Size = New System.Drawing.Size(75, 23)
+            Me.btnCancel.TabIndex = 15
+            Me.btnCancel.Text = "Cancel"
+            Me.btnCancel.UseVisualStyleBackColor = True
+            '
+            'btnSave
+            '
+            Me.btnSave.Location = New System.Drawing.Point(431, 113)
+            Me.btnSave.Name = "btnSave"
+            Me.btnSave.Size = New System.Drawing.Size(75, 23)
+            Me.btnSave.TabIndex = 14
+            Me.btnSave.Text = "Save"
+            Me.btnSave.UseVisualStyleBackColor = True
+            '
+            'lblMapLabel
+            '
+            Me.lblMapLabel.AutoSize = True
+            Me.lblMapLabel.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+            Me.lblMapLabel.Location = New System.Drawing.Point(59, 25)
+            Me.lblMapLabel.Name = "lblMapLabel"
+            Me.lblMapLabel.Size = New System.Drawing.Size(34, 13)
+            Me.lblMapLabel.TabIndex = 28
+            Me.lblMapLabel.Text = "Map :"
+            '
+            'txtMapPath
+            '
+            Me.txtMapPath.Location = New System.Drawing.Point(105, 22)
+            Me.txtMapPath.Name = "txtMapPath"
+            Me.txtMapPath.ReadOnly = True
+            Me.txtMapPath.Size = New System.Drawing.Size(397, 20)
+            Me.txtMapPath.TabIndex = 27
+            '
+            'btnBrowsePowerMap
+            '
+            Me.btnBrowsePowerMap.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+            Me.btnBrowsePowerMap.Location = New System.Drawing.Point(512, 22)
+            Me.btnBrowsePowerMap.Name = "btnBrowsePowerMap"
+            Me.btnBrowsePowerMap.Size = New System.Drawing.Size(75, 23)
+            Me.btnBrowsePowerMap.TabIndex = 26
+            Me.btnBrowsePowerMap.Text = "Browse"
+            Me.btnBrowsePowerMap.UseVisualStyleBackColor = True
+            '
+            'lblPulleyGearRatio
+            '
+            Me.lblPulleyGearRatio.AutoSize = True
+            Me.lblPulleyGearRatio.Location = New System.Drawing.Point(163, 64)
+            Me.lblPulleyGearRatio.Name = "lblPulleyGearRatio"
+            Me.lblPulleyGearRatio.Size = New System.Drawing.Size(81, 13)
+            Me.lblPulleyGearRatio.TabIndex = 30
+            Me.lblPulleyGearRatio.Text = " Pully Efficiency"
+            '
+            'txtPulleyEfficiency
+            '
+            Me.txtPulleyEfficiency.Location = New System.Drawing.Point(250, 61)
+            Me.txtPulleyEfficiency.Name = "txtPulleyEfficiency"
+            Me.txtPulleyEfficiency.Size = New System.Drawing.Size(41, 20)
+            Me.txtPulleyEfficiency.TabIndex = 29
+            '
+            'F_Compressor
+            '
+            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+            Me.ClientSize = New System.Drawing.Size(602, 147)
+            Me.Controls.Add(Me.lblPulleyGearRatio)
+            Me.Controls.Add(Me.txtPulleyEfficiency)
+            Me.Controls.Add(Me.lblMapLabel)
+            Me.Controls.Add(Me.txtMapPath)
+            Me.Controls.Add(Me.btnBrowsePowerMap)
+            Me.Controls.Add(Me.lblPullyEfficiency)
+            Me.Controls.Add(Me.txtPullyEfficiency)
+            Me.Controls.Add(Me.lblMapFile)
+            Me.Controls.Add(Me.txtMapFile)
+            Me.Controls.Add(Me.btnBrowseMap)
+            Me.Controls.Add(Me.btnCancel)
+            Me.Controls.Add(Me.btnSave)
+            Me.Name = "F_Compressor"
+            Me.Text = "Pneumatic Compressor"
+            Me.ResumeLayout(False)
+            Me.PerformLayout()
+
+        End Sub
+        Friend WithEvents lblPullyEfficiency As System.Windows.Forms.Label
+        Friend WithEvents txtPullyEfficiency As System.Windows.Forms.TextBox
+        Friend WithEvents lblMapFile As System.Windows.Forms.Label
+        Friend WithEvents txtMapFile As System.Windows.Forms.TextBox
+        Friend WithEvents btnBrowseMap As System.Windows.Forms.Button
+        Friend WithEvents btnCancel As System.Windows.Forms.Button
+        Friend WithEvents btnSave As System.Windows.Forms.Button
+        Friend WithEvents lblMapLabel As System.Windows.Forms.Label
+        Friend WithEvents txtMapPath As System.Windows.Forms.TextBox
+        Friend WithEvents btnBrowsePowerMap As System.Windows.Forms.Button
+        Friend WithEvents lblPulleyGearRatio As System.Windows.Forms.Label
+        Friend WithEvents txtPulleyEfficiency As System.Windows.Forms.TextBox
+    End Class
+End Namespace
+
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_Compressor.resx b/VECTOAux/VectoAuxiliaries/UI/F_Compressor.resx
new file mode 100644
index 0000000000000000000000000000000000000000..1af7de150c99c12dd67a509fe57c10d63e4eeb04
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_Compressor.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_Compressor.vb b/VECTOAux/VectoAuxiliaries/UI/F_Compressor.vb
new file mode 100644
index 0000000000000000000000000000000000000000..65afdb1eed229df21308d64d13b811c3d16e89d3
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_Compressor.vb
@@ -0,0 +1,13 @@
+
+Imports VectoAuxiliaries.Hvac
+Imports System.Windows.Forms
+
+Namespace UI
+
+    Public Class F_Compressor
+
+
+    End Class
+
+End Namespace
+
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb
index 6afa48d036ca798d5a09c765386fa30efc59b2ec..1de4c0354664162ce6306d5cc3108d6025bf3ad2 100644
--- a/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb
+++ b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb
@@ -36,6 +36,8 @@
             Me.txtMechanicalDemand = New System.Windows.Forms.TextBox()
             Me.lblElectricalDemand = New System.Windows.Forms.Label()
             Me.txtElectricalDemand = New System.Windows.Forms.TextBox()
+            Me.lblPulleyGearRatio = New System.Windows.Forms.Label()
+            Me.txtPulleyGearRatio = New System.Windows.Forms.TextBox()
             CType(Me.dgMapResults, System.ComponentModel.ISupportInitialize).BeginInit()
             Me.SuspendLayout()
             '
@@ -44,17 +46,17 @@
             Me.dgMapResults.AllowUserToAddRows = False
             Me.dgMapResults.AllowUserToDeleteRows = False
             Me.dgMapResults.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
-            Me.dgMapResults.Location = New System.Drawing.Point(14, 183)
+            Me.dgMapResults.Location = New System.Drawing.Point(14, 164)
             Me.dgMapResults.MultiSelect = False
             Me.dgMapResults.Name = "dgMapResults"
             Me.dgMapResults.ReadOnly = True
             Me.dgMapResults.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect
-            Me.dgMapResults.Size = New System.Drawing.Size(650, 218)
+            Me.dgMapResults.Size = New System.Drawing.Size(650, 245)
             Me.dgMapResults.TabIndex = 0
             '
             'btnSave
             '
-            Me.btnSave.Location = New System.Drawing.Point(497, 425)
+            Me.btnSave.Location = New System.Drawing.Point(497, 426)
             Me.btnSave.Name = "btnSave"
             Me.btnSave.Size = New System.Drawing.Size(75, 23)
             Me.btnSave.TabIndex = 1
@@ -63,7 +65,7 @@
             '
             'btnCancel
             '
-            Me.btnCancel.Location = New System.Drawing.Point(584, 425)
+            Me.btnCancel.Location = New System.Drawing.Point(584, 426)
             Me.btnCancel.Name = "btnCancel"
             Me.btnCancel.Size = New System.Drawing.Size(75, 23)
             Me.btnCancel.TabIndex = 2
@@ -100,22 +102,22 @@
             '
             'pnlSearchBar
             '
-            Me.pnlSearchBar.Location = New System.Drawing.Point(16, 114)
+            Me.pnlSearchBar.Location = New System.Drawing.Point(16, 95)
             Me.pnlSearchBar.Name = "pnlSearchBar"
             Me.pnlSearchBar.Size = New System.Drawing.Size(643, 59)
             Me.pnlSearchBar.TabIndex = 6
             '
             'txtPullyEfficiency
             '
-            Me.txtPullyEfficiency.Location = New System.Drawing.Point(107, 60)
+            Me.txtPullyEfficiency.Location = New System.Drawing.Point(102, 53)
             Me.txtPullyEfficiency.Name = "txtPullyEfficiency"
-            Me.txtPullyEfficiency.Size = New System.Drawing.Size(46, 20)
+            Me.txtPullyEfficiency.Size = New System.Drawing.Size(35, 20)
             Me.txtPullyEfficiency.TabIndex = 7
             '
             'lblPullyEfficiency
             '
             Me.lblPullyEfficiency.AutoSize = True
-            Me.lblPullyEfficiency.Location = New System.Drawing.Point(20, 63)
+            Me.lblPullyEfficiency.Location = New System.Drawing.Point(15, 57)
             Me.lblPullyEfficiency.Name = "lblPullyEfficiency"
             Me.lblPullyEfficiency.Size = New System.Drawing.Size(81, 13)
             Me.lblPullyEfficiency.TabIndex = 8
@@ -124,7 +126,7 @@
             'lblMechanicalDemand
             '
             Me.lblMechanicalDemand.AutoSize = True
-            Me.lblMechanicalDemand.Location = New System.Drawing.Point(175, 63)
+            Me.lblMechanicalDemand.Location = New System.Drawing.Point(291, 58)
             Me.lblMechanicalDemand.Name = "lblMechanicalDemand"
             Me.lblMechanicalDemand.Size = New System.Drawing.Size(132, 13)
             Me.lblMechanicalDemand.TabIndex = 9
@@ -132,7 +134,7 @@
             '
             'txtMechanicalDemand
             '
-            Me.txtMechanicalDemand.Location = New System.Drawing.Point(315, 59)
+            Me.txtMechanicalDemand.Location = New System.Drawing.Point(431, 54)
             Me.txtMechanicalDemand.Name = "txtMechanicalDemand"
             Me.txtMechanicalDemand.ReadOnly = True
             Me.txtMechanicalDemand.Size = New System.Drawing.Size(56, 20)
@@ -142,7 +144,7 @@
             'lblElectricalDemand
             '
             Me.lblElectricalDemand.AutoSize = True
-            Me.lblElectricalDemand.Location = New System.Drawing.Point(390, 62)
+            Me.lblElectricalDemand.Location = New System.Drawing.Point(493, 58)
             Me.lblElectricalDemand.Name = "lblElectricalDemand"
             Me.lblElectricalDemand.Size = New System.Drawing.Size(120, 13)
             Me.lblElectricalDemand.TabIndex = 11
@@ -150,18 +152,36 @@
             '
             'txtElectricalDemand
             '
-            Me.txtElectricalDemand.Location = New System.Drawing.Point(516, 59)
+            Me.txtElectricalDemand.Location = New System.Drawing.Point(619, 54)
             Me.txtElectricalDemand.Name = "txtElectricalDemand"
             Me.txtElectricalDemand.ReadOnly = True
             Me.txtElectricalDemand.Size = New System.Drawing.Size(26, 20)
             Me.txtElectricalDemand.TabIndex = 12
             Me.txtElectricalDemand.Text = "0"
             '
+            'lblPulleyGearRatio
+            '
+            Me.lblPulleyGearRatio.AutoSize = True
+            Me.lblPulleyGearRatio.Location = New System.Drawing.Point(139, 57)
+            Me.lblPulleyGearRatio.Name = "lblPulleyGearRatio"
+            Me.lblPulleyGearRatio.Size = New System.Drawing.Size(86, 13)
+            Me.lblPulleyGearRatio.TabIndex = 14
+            Me.lblPulleyGearRatio.Text = " Pully Gear Ratio"
+            '
+            'txtPulleyGearRatio
+            '
+            Me.txtPulleyGearRatio.Location = New System.Drawing.Point(227, 53)
+            Me.txtPulleyGearRatio.Name = "txtPulleyGearRatio"
+            Me.txtPulleyGearRatio.Size = New System.Drawing.Size(39, 20)
+            Me.txtPulleyGearRatio.TabIndex = 13
+            '
             'F_HVAC
             '
             Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
             Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
-            Me.ClientSize = New System.Drawing.Size(674, 460)
+            Me.ClientSize = New System.Drawing.Size(674, 458)
+            Me.Controls.Add(Me.lblPulleyGearRatio)
+            Me.Controls.Add(Me.txtPulleyGearRatio)
             Me.Controls.Add(Me.txtElectricalDemand)
             Me.Controls.Add(Me.lblElectricalDemand)
             Me.Controls.Add(Me.txtMechanicalDemand)
@@ -195,6 +215,8 @@
         Friend WithEvents txtMechanicalDemand As System.Windows.Forms.TextBox
         Friend WithEvents lblElectricalDemand As System.Windows.Forms.Label
         Friend WithEvents txtElectricalDemand As System.Windows.Forms.TextBox
+        Friend WithEvents lblPulleyGearRatio As System.Windows.Forms.Label
+        Friend WithEvents txtPulleyGearRatio As System.Windows.Forms.TextBox
 
     End Class
 
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_PneumaticConsumers.Designer.vb b/VECTOAux/VectoAuxiliaries/UI/F_PneumaticConsumers.Designer.vb
new file mode 100644
index 0000000000000000000000000000000000000000..7fc4b99b34bf1c41645e091864ffd2c42f899291
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_PneumaticConsumers.Designer.vb
@@ -0,0 +1,37 @@
+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class F_PneumaticConsumers
+    Inherits System.Windows.Forms.Form
+
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+
+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer
+
+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.SuspendLayout()
+        '
+        'F_PneumaticConsumers
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(483, 264)
+        Me.Name = "F_PneumaticConsumers"
+        Me.Text = "F_PneumaticConsumers"
+        Me.ResumeLayout(False)
+
+    End Sub
+End Class
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_PneumaticConsumers.resx b/VECTOAux/VectoAuxiliaries/UI/F_PneumaticConsumers.resx
new file mode 100644
index 0000000000000000000000000000000000000000..1af7de150c99c12dd67a509fe57c10d63e4eeb04
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_PneumaticConsumers.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_PneumaticConsumers.vb b/VECTOAux/VectoAuxiliaries/UI/F_PneumaticConsumers.vb
new file mode 100644
index 0000000000000000000000000000000000000000..9e0e3170dc101256bac28b68d1608f7d3319151a
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_PneumaticConsumers.vb
@@ -0,0 +1,3 @@
+Public Class F_PneumaticConsumers
+
+End Class
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj b/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj
index b8ffe23ad7c5c31e5c5334fd8727e30683995d1b..d9fcb23b1a82c4da356b772f15c89d9032ba9614 100644
--- a/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj
+++ b/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj
@@ -78,7 +78,6 @@
     <Compile Include="Electrics\AlternatorMap.vb" />
     <Compile Include="Electrics\AverageElectricalDemand.vb" />
     <Compile Include="Hvac\AverageHVACLoadDemand.vb" />
-    <Compile Include="Pneumatics\AirFlowRateMechanicalDemandMap.vb" />
     <Compile Include="Pneumatics\AveragePneumaticLoadDemand.vb" />
     <Compile Include="Pneumatics\CompressorMap.vb" />
     <Compile Include="Electrics\ElectricalConsumer.vb" />
@@ -86,7 +85,6 @@
     <Compile Include="Electrics\IAlternator.vb" />
     <Compile Include="Electrics\IAlternatorMap.vb" />
     <Compile Include="Pneumatics\IAirCompressor.vb" />
-    <Compile Include="Pneumatics\IAirFlowRateMechanicalDemandMap.vb" />
     <Compile Include="Pneumatics\ICompressorMap.vb" />
     <Compile Include="Electrics\IElectricalConsumer.vb" />
     <Compile Include="My Project\AssemblyInfo.vb" />
@@ -106,12 +104,36 @@
     </Compile>
     <Compile Include="Pneumatics\IPneumaticConsumer.vb" />
     <Compile Include="Pneumatics\PneumaticConsumer.vb" />
+    <Compile Include="UI\ElectricalConsumers.Designer.vb">
+      <DependentUpon>ElectricalConsumers.vb</DependentUpon>
+    </Compile>
+    <Compile Include="UI\ElectricalConsumers.vb">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="UI\F_Alternator.Designer.vb">
+      <DependentUpon>F_Alternator.vb</DependentUpon>
+    </Compile>
+    <Compile Include="UI\F_Alternator.vb">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="UI\F_Compressor.Designer.vb">
+      <DependentUpon>F_Compressor.vb</DependentUpon>
+    </Compile>
+    <Compile Include="UI\F_Compressor.vb">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="UI\F_HVAC.Designer.vb">
       <DependentUpon>F_HVAC.vb</DependentUpon>
     </Compile>
     <Compile Include="UI\F_HVAC.vb">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Include="UI\F_PneumaticConsumers.Designer.vb">
+      <DependentUpon>F_PneumaticConsumers.vb</DependentUpon>
+    </Compile>
+    <Compile Include="UI\F_PneumaticConsumers.vb">
+      <SubType>Form</SubType>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="My Project\Resources.resx">
@@ -120,9 +142,15 @@
       <CustomToolNamespace>My.Resources</CustomToolNamespace>
       <SubType>Designer</SubType>
     </EmbeddedResource>
+    <EmbeddedResource Include="UI\F_Compressor.resx">
+      <DependentUpon>F_Compressor.vb</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="UI\F_HVAC.resx">
       <DependentUpon>F_HVAC.vb</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="UI\F_PneumaticConsumers.resx">
+      <DependentUpon>F_PneumaticConsumers.vb</DependentUpon>
+    </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>
     <None Include="Hvac\HVACMap.vaux" />
diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/AirFlowRateMechanicalDemandMapMock.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/AirFlowRateMechanicalDemandMapMock.vb
deleted file mode 100644
index cb285550a97dcf3fe44904ca08286f0c386a42c8..0000000000000000000000000000000000000000
--- a/VECTOAux/VectoAuxiliariesTests/Mocks/AirFlowRateMechanicalDemandMapMock.vb
+++ /dev/null
@@ -1,34 +0,0 @@
-Imports VectoAuxiliaries.Pneumatics
-
-
-Namespace Mocks
-
-    Public Class AirFlowRateMechanicalDemandMapMock
-        Implements IAirFlowRateMechanicalDemandMap
-
-        Private map = New Dictionary(Of Integer, Single)
-
-        Public Function Initialise() As Boolean Implements IAirFlowRateMechanicalDemandMap.Initialise
-
-            map.Add(100, 2.0)
-            map.Add(200, 3.0)
-            map.Add(300, 4.0)
-            map.Add(500, 5.0)
-
-            Return True
-
-        End Function
-
-
-        Public Function GetPower(flowRate As Integer) As Integer Implements IAirFlowRateMechanicalDemandMap.GetPower
-
-            Return map(flowRate)
-
-        End Function
-
-    End Class
-
-
-End Namespace
-
-
diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/CompressorMapMock.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/CompressorMapMock.vb
index 2d848b25649b7bcd120f62ef5db347eb4c06e0e0..1ad2a0ae8860b88d83faccf8515931752d747138 100644
--- a/VECTOAux/VectoAuxiliariesTests/Mocks/CompressorMapMock.vb
+++ b/VECTOAux/VectoAuxiliariesTests/Mocks/CompressorMapMock.vb
@@ -30,5 +30,14 @@ Namespace Mocks
         Public Function GetPowerCompressorOff(ByVal rpm As Integer) As Single Implements ICompressorMap.GetPowerCompressorOff
             Return 5.0
         End Function
+
+
+        Public Function GetAveragePowerDemandPerCompressorUnitFlowRate() As Single Implements ICompressorMap.GetAveragePowerDemandPerCompressorUnitFlowRate
+
+            Return 0.01
+
+        End Function
+
+
     End Class
 End Namespace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - GoodMap.csv b/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - GoodMap.csv
deleted file mode 100644
index 9fae6b85f75df3d658407e3ee015dd64d204aa28..0000000000000000000000000000000000000000
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - GoodMap.csv	
+++ /dev/null
@@ -1,5 +0,0 @@
-FlowRate [L/S], Power [KW]
-100,2.0
-200,3.0
-300,4.0
-500,5.0
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - InvalidElements.csv b/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - InvalidElements.csv
deleted file mode 100644
index 50ed797c61fd306d89ae68964b925e77d44c950a..0000000000000000000000000000000000000000
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - InvalidElements.csv	
+++ /dev/null
@@ -1,5 +0,0 @@
-FlowRate [L/S], Power [KW]
-100,2.0
-200,a
-300,4.0
-500,5.0
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - InvalidKey.csv b/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - InvalidKey.csv
deleted file mode 100644
index 9fae6b85f75df3d658407e3ee015dd64d204aa28..0000000000000000000000000000000000000000
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - InvalidKey.csv	
+++ /dev/null
@@ -1,5 +0,0 @@
-FlowRate [L/S], Power [KW]
-100,2.0
-200,3.0
-300,4.0
-500,5.0
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - NotEnoughElements.csv b/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - NotEnoughElements.csv
deleted file mode 100644
index fc0c020d14c806ca9ff99415a76f1da992a6490f..0000000000000000000000000000000000000000
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - NotEnoughElements.csv	
+++ /dev/null
@@ -1,5 +0,0 @@
-FlowRate [L/S], Power [KW]
-100,2.0
-200
-300,4.0
-500,5.0
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - NotEnoughRows.csv b/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - NotEnoughRows.csv
deleted file mode 100644
index abf714f7c45016392739edb043bc5a3885241c2f..0000000000000000000000000000000000000000
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/testPneumaticAirFlowRateToMechanicalDemandMap - NotEnoughRows.csv	
+++ /dev/null
@@ -1,3 +0,0 @@
-FlowRate [L/S], Power [KW]
-100,2.0
-200,3.0
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
index fac5c39c662f2c71c165b3d1125def5cf975948f..e1d189aa791055779ccef10594ee226138d8bd19 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
@@ -146,5 +146,20 @@ Namespace UnitTests
             Assert.AreEqual(expected, actual)
         End Sub
 
+
+        <Test>
+        Public Sub GetAveragePowerDemandPerCompressorUnitFlowRate()
+
+            Dim comp As AirCompressor = GetGoodCompressor()
+
+            Dim expected As Single = 0.01
+            Dim actual As Single = comp.GetAveragePowerDemandPerCompressorUnitFlowRate
+            Assert.AreEqual(actual, expected)
+
+
+        End Sub
+
+
+
     End Class
 End Namespace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AverageHVACLoadDemandMAPTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AverageHVACLoadDemandMAPTests.vb
deleted file mode 100644
index 66e637dd97ea3eb2cf99bc20301bafd1e470e17c..0000000000000000000000000000000000000000
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AverageHVACLoadDemandMAPTests.vb
+++ /dev/null
@@ -1,89 +0,0 @@
-Imports System.Configuration
-Imports VectoAuxiliaries.Hvac
-Imports VectoAuxiliariesTests.Mocks
-Imports VectoAuxiliaries.Electrics
-Imports NUnit.Framework
-Imports VectoAuxiliaries
-
-
-Namespace UnitTests
-
-    <TestFixture()> Public Class AverageHVACLoadDemandTests
-#Region "Helpers"
-
-        Const HVACMAPTestData As String = "TestFiles\HVACMap.vaux"
-
-        Private Function GetAlternatorMock() As IAlternator
-            Dim alt As IAlternator = New AlternatorMock()
-            alt.PulleyGearEfficiency = 0.8
-            alt.PulleyGearRatio = 1.5
-            Return alt
-        End Function
-
-        Private Function GetHVACMapMock() As IHVACMap
-            Dim map As IHVACMap = New HVACMapMock(HVACMAPTestData)
-            Return map
-        End Function
-
-        Private Function GetAverageHVACLoadDemandIntance() As AverageHVACLoadDemand
-            Dim alt As IAlternator = GetAlternatorMock()
-            Dim map As IHVACMap = GetHVACMapMock()
-            Dim inputs As New HVACInputs(1, 1)
-            Dim target As AverageHVACLoadDemand = New AverageHVACLoadDemand(map, alt, inputs)
-            Return target
-        End Function
-
-        Private Function GetInitialisedAverageHVACLoadDemandIntance() As AverageHVACLoadDemand
-            Dim alt As IAlternator = GetAlternatorMock()
-            Dim map As IHVACMap = GetHVACMapMock()
-            Dim target As AverageHVACLoadDemand = New AverageHVACLoadDemand(map, alt, New HVACInputs(1, 1))
-            target.Initialise()
-            Return target
-        End Function
-
-#End Region
-
-        <Test()> Public Sub NewTest()
-            Dim target As AverageHVACLoadDemand = GetAverageHVACLoadDemandIntance()
-            Assert.IsNotNull(target)
-            Assert.IsInstanceOf(GetType(AverageHVACLoadDemand), target)
-        End Sub
-
-        <Test()> Public Sub InitialiseTest()
-            Dim target As AverageHVACLoadDemand = GetAverageHVACLoadDemandIntance()
-            Assert.IsTrue(target.Initialise())
-        End Sub
-
-        <Test()>
-        Public Sub AverageMechanicalPowerDemandAtCrankTest()
-
-            Dim target As AverageHVACLoadDemand = GetInitialisedAverageHVACLoadDemandIntance()
-            Dim expected As Single = 62.5
-            Dim actual As Single = target.AverageMechanicalPowerDemandAtCrank()
-
-            Assert.AreEqual(expected, actual)
-
-        End Sub
-
-        <Test()> Public Sub AverageElectricalPowerDemandAtAlternatorTest()
-            Dim target As AverageHVACLoadDemand = GetInitialisedAverageHVACLoadDemandIntance()
-            Dim expected As Integer = 10
-            Dim actual As Integer = target.AverageElectricalPowerDemandAtAlternator
-            Assert.AreEqual(expected, actual)
-
-        End Sub
-
-        <Test()> Public Sub AverageElectricalPowerAtCrankTest()
-
-            Dim target As AverageHVACLoadDemand = GetInitialisedAverageHVACLoadDemandIntance()
-            Dim expected As Single = 25
-            Dim actual As Single = target.AverageElectricalPowerDemandAtCrank(100)
-            Assert.AreEqual(expected, actual)
-
-        End Sub
-
-    End Class
-
-End Namespace
-
-
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
index 5a00760354f3c0c7857d1b2582752d9a1d36e861..a60d4b9015087e17cd0b79d60c97e3423ba31603 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
@@ -10,42 +10,42 @@ Namespace UnitTests
     Public Class AveragePneumaticLoadDemandTests
 
 
-        Private Const MAP_GOOD As String = "TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap - GoodMap.csv"
-
-        Private map As IAirFlowRateMechanicalDemandMap
         Private noConsumers As New List(Of IPneumaticConsumer)
         Private threeConsumers As New List(Of IPneumaticConsumer)
+        Private compressor As IAirCompressor
 
 
 
         'Constructors
         Public Sub New()
 
+
+            compressor = New AirCompressor(New CompressorMapMock(False))
+
             initialise()
 
+
         End Sub
 
 
         Private Sub initialise()
 
-            map = New AirFlowRateMechanicalDemandMapMock()
-            map.Initialise()
-
             threeConsumers.Add(New PneumaticConsumer("Doors", 100))
             threeConsumers.Add(New PneumaticConsumer("HairDrier", 200))
             threeConsumers.Add(New PneumaticConsumer("BalloonInflater", 300))
 
+
         End Sub
 
 
         <Test>
         Public Sub AveragePowerDemandAtCrank_ThreeConsumers()
 
-            Dim target = New AveragePneumaticLoadDemand(map, 10, 0.5, threeConsumers)
+            Dim target = New AveragePneumaticLoadDemand(compressor, 10, 0.5, threeConsumers)
 
-            Dim result As Single = target.GetAveragePowerDemandAtCrankFromPneumatics()
+            Dim result As Single = Math.Round(target.GetAveragePowerDemandAtCrankFromPneumatics(), 2)
 
-            Dim expected As Single = 7666.666
+            Dim expected As Single = 1.2
 
             Assert.AreEqual(result, expected)
 
@@ -54,7 +54,7 @@ Namespace UnitTests
         <Test>
         Public Sub TotalAirDeliveryRate_ThreeConsumers()
 
-            Dim target = New AveragePneumaticLoadDemand(map, 10, 0.5, threeConsumers)
+            Dim target = New AveragePneumaticLoadDemand(compressor, 10, 0.5, threeConsumers)
 
             Dim result As Single = target.GetTotalRequiredAirPerCompressorUnitDeliveryRate()
 
@@ -67,11 +67,11 @@ Namespace UnitTests
         <Test>
         Public Sub TotalAirDeliveryRate_NoConsumers()
 
-            Dim target = New AveragePneumaticLoadDemand(map, 10, 0.5, Nothing)
+            Dim target = New AveragePneumaticLoadDemand(compressor, 10, 0.5, Nothing)
 
             Dim result As Single = target.GetTotalRequiredAirPerCompressorUnitDeliveryRate()
 
-            Dim expected As Single = 600
+            Dim expected As Single = 0.01
 
             Assert.AreEqual(result, 0)
 
@@ -80,7 +80,7 @@ Namespace UnitTests
         <Test>
         Public Sub AveragePowerDemandAtCrank_NoConsumers()
 
-            Dim target = New AveragePneumaticLoadDemand(map, 10, 0.5, Nothing)
+            Dim target = New AveragePneumaticLoadDemand(compressor, 10, 0.5, Nothing)
 
             Dim result As Single = target.GetAveragePowerDemandAtCrankFromPneumatics()
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadMAPTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadMAPTests.vb
deleted file mode 100644
index 5552c0d3cce350c035d7dbfc294bb839ceb21cc0..0000000000000000000000000000000000000000
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadMAPTests.vb
+++ /dev/null
@@ -1,78 +0,0 @@
-Imports NUnit.Framework
-Imports VectoAuxiliaries.Pneumatics
-
-Namespace UnitTests
-
-    <TestFixture()>
-    Public Class AveragePneumaticLoadDemandMAPTests
-
-        Private Const MAP_GOOD As String = "TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap - GoodMap.csv"
-        Private Const MAP_INVALIDELEMENTS As String = "TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap_Invalid Elements.csv"
-        Private Const MAP_INVALIDKEY As String = "TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap_InvalidKey.csv"
-        Private Const MAP_NOTENOUGHELEMENTS As String = "TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap_NotEnoughElements.csv"
-        Private Const MAP_NOTENOUGHROWS As String = "TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap_NotEnoughRows.csv"
-        Private Const MAP_FILENOTFOUND As String = "File_NotFound.csv"
-
-
-        ''' <summary>
-        ''' Test Suite
-        ''' </summary>
-        ''' <remarks></remarks>
-        <Test>
-        Public Sub CreateNewFlowMechPowerMap()
-
-            Dim target As New AirFlowRateMechanicalDemandMap(MAP_GOOD)
-            Assert.IsNotNull(target)
-
-        End Sub
-        <Test>
-        Public Sub InitialiseTest()
-
-            Dim target As New AirFlowRateMechanicalDemandMap(MAP_GOOD)
-            Assert.IsTrue(target.Initialise())
-
-        End Sub
-        <Test>
-        <ExpectedException("System.ArgumentException")>
-        Public Sub InvalidElementsFlowMechPowerMap()
-
-            Dim target As New AirFlowRateMechanicalDemandMap(MAP_INVALIDELEMENTS)
-            Assert.IsTrue(target.Initialise())
-
-        End Sub
-        <Test>
-        <ExpectedException("System.ArgumentException")>
-        Public Sub NotEnoughElementsFlowMechPowerMap()
-            Dim target As New AirFlowRateMechanicalDemandMap(MAP_NOTENOUGHELEMENTS)
-            Assert.IsTrue(target.Initialise())
-        End Sub
-        <Test>
-       <ExpectedException("System.ArgumentException")>
-        Public Sub NotEnoughRowsFlowMechPowerMap()
-            Dim target As New AirFlowRateMechanicalDemandMap(MAP_NOTENOUGHROWS)
-            Assert.IsTrue(target.Initialise())
-        End Sub
-        <Test>
-       <ExpectedException("System.ArgumentException")>
-        Public Sub FileNotFoundFlowMechPowerMap_ThrowArgumentException()
-
-            Dim target As New AirFlowRateMechanicalDemandMap(MAP_FILENOTFOUND)
-            Assert.IsTrue(target.Initialise())
-
-        End Sub
-        <Test>
-        <ExpectedException("System.ArgumentException")>
-        Public Sub InvalidKeyFlowRatePowerMap_ThrowArgumentOutOfRangeException()
-
-            Dim target As New AirFlowRateMechanicalDemandMap(MAP_GOOD)
-            Assert.IsTrue(target.Initialise())
-
-            target.GetPower(-100)
-
-        End Sub
-
-
-    End Class
-
-
-End Namespace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/CompressorMapTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/CompressorMapTests.vb
index 0ec679de5e6f2051f546a2b98f7d62bd7c9cb34b..f92ebc08003823a1a30284b8d3123707b9ae746b 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/CompressorMapTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/CompressorMapTests.vb
@@ -168,6 +168,24 @@ Namespace UnitTests
             Dim value As Single = target.GetPowerCompressorOff(rpm)
         End Sub
 
+
+        <Test>
+        Public Sub GetAveragePowerDemandPerCompressorUnitFlowRate()
+
+            Dim target As CompressorMap = GetInitialiseMap()
+
+            Dim expected As Single
+            Dim actual As Single
+
+            expected = 0.01
+
+            actual = target.AveragePowerDemandPerCompressorUnitFlowRate
+
+            Assert.AreEqual(expected, actual)
+
+        End Sub
+
+
     End Class
 
 End Namespace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj b/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj
index 068d5d38254b28c2ebd5b1da5aef17cf350f411b..01c28b93f2358b7b396ee88952e7a740d38e2325 100644
--- a/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj
+++ b/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj
@@ -87,10 +87,7 @@
     <Import Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="Mocks\AirFlowRateMechanicalDemandMapMock.vb" />
     <Compile Include="Mocks\HVACMapMock.vb" />
-    <Compile Include="UnitTests\AverageHVACLoadDemandMAPTests.vb" />
-    <Compile Include="UnitTests\AveragePneumaticLoadMAPTests.vb" />
     <Compile Include="UnitTests\AveragePneumaticLoadDemandTests.vb" />
     <Compile Include="UnitTests\HVACMapTests.vb" />
     <Compile Include="UnitTests\PneumaticConsumerTests.vb" />
@@ -191,21 +188,6 @@
     <Content Include="TestFiles\testHvacMapWrongColumns.csv">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
-    <Content Include="TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap - InvalidKey.csv">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
-    <Content Include="TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap - NotEnoughElements.csv">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
-    <Content Include="TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap - InvalidElements.csv">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
-    <Content Include="TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap - NotEnoughRows.csv">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
-    <Content Include="TestFiles\testPneumaticAirFlowRateToMechanicalDemandMap - GoodMap.csv">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
     <None Include="TestFiles\HVACMap.vaux" />
     <Content Include="TestFiles\TestHvacMap - ExtraBlankLines.csv">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>