GetStockSections has been made interface only, like the GetCustomSections function that returns a list of ISectionModule. Also added missing null check (should never be encountered but no harm in having robust code).
GetStockSections has been made interface only, like the GetCustomSections function that returns a list of ISectionModule. Also added missing null check (should never be encountered but no harm in having robust code).

 Binary files a/Assets/Plugins/KerbalEngineer.Unity.dll and b/Assets/Plugins/KerbalEngineer.Unity.dll differ
--- a/Assets/Prefabs/FlightMenu.prefab
+++ b/Assets/Prefabs/FlightMenu.prefab
@@ -1,21 +1,5 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
---- !u!1 &104160
-GameObject:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  serializedVersion: 4
-  m_Component:
-  - 224: {fileID: 22478204}
-  - 114: {fileID: 11445012}
-  m_Layer: 5
-  m_Name: Space
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
 --- !u!1 &104452
 GameObject:
   m_ObjectHideFlags: 1
@@ -28,6 +12,25 @@
   - 114: {fileID: 11459182}
   m_Layer: 5
   m_Name: Selected
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &114528
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 4
+  m_Component:
+  - 224: {fileID: 22468796}
+  - 222: {fileID: 22254028}
+  - 114: {fileID: 11494262}
+  - 114: {fileID: 11417302}
+  - 114: {fileID: 11415068}
+  m_Layer: 5
+  m_Name: ToggleControlBar
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -62,9 +65,9 @@
   - 222: {fileID: 22201528}
   - 114: {fileID: 11404586}
   - 114: {fileID: 11461688}
-  - 114: {fileID: 11415068}
-  m_Layer: 5
-  m_Name: ToggleControlBar
+  - 114: {fileID: 11420706}
+  m_Layer: 5
+  m_Name: NewCustomSection
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -175,6 +178,23 @@
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
+--- !u!1 &157290
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 4
+  m_Component:
+  - 224: {fileID: 22435482}
+  - 114: {fileID: 11462752}
+  - 114: {fileID: 11483978}
+  m_Layer: 5
+  m_Name: Sections
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
 --- !u!1 &172308
 GameObject:
   m_ObjectHideFlags: 1
@@ -187,6 +207,23 @@
   - 114: {fileID: 11439582}
   m_Layer: 5
   m_Name: label
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!1 &193852
+GameObject:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 4
+  m_Component:
+  - 224: {fileID: 22411946}
+  - 222: {fileID: 22255200}
+  - 114: {fileID: 11465050}
+  m_Layer: 5
+  m_Name: Text
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -302,7 +339,7 @@
   m_ObjectHideFlags: 1
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 122098}
+  m_GameObject: {fileID: 114528}
   m_Enabled: 1
   m_EditorHideFlags: 0
   m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
@@ -317,8 +354,99 @@
   m_Transition: 1
   m_Colors:
     m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
-    m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1}
-    m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1}
+    m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
+    m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
+    m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
+    m_ColorMultiplier: 1
+    m_FadeDuration: .100000001
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 11494262}
+  toggleTransition: 1
+  graphic: {fileID: 11459182}
+  m_Group: {fileID: 0}
+  onValueChanged:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 11415294}
+        m_MethodName: SetControlBarVisible
+        m_Mode: 0
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+    m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
+      Culture=neutral, PublicKeyToken=null
+  m_IsOn: 0
+--- !u!114 &11415294
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 126098}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 571159103, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_ShowEngineerToggle: {fileID: 11485338}
+  m_ControlBarToggle: {fileID: 11415068}
+  m_MenuSectionPrefab: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2}
+  m_SectionsTransform: {fileID: 22435482}
+  m_FastFadeDuration: .100000001
+  m_SlowFadeDuration: .300000012
+--- !u!114 &11417302
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 114528}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: -1
+  m_PreferredHeight: 15
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+--- !u!114 &11420706
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 122098}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
+    m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
     m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
     m_ColorMultiplier: 1
     m_FadeDuration: .100000001
@@ -333,15 +461,12 @@
     m_DisabledTrigger: Disabled
   m_Interactable: 1
   m_TargetGraphic: {fileID: 11404586}
-  toggleTransition: 1
-  graphic: {fileID: 11459182}
-  m_Group: {fileID: 0}
-  onValueChanged:
+  m_OnClick:
     m_PersistentCalls:
       m_Calls:
       - m_Target: {fileID: 11415294}
-        m_MethodName: SetControlBar
-        m_Mode: 0
+        m_MethodName: NewCustomSection
+        m_Mode: 1
         m_Arguments:
           m_ObjectArgument: {fileID: 0}
           m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
@@ -350,26 +475,8 @@
           m_StringArgument: 
           m_BoolArgument: 0
         m_CallState: 2
-    m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
+    m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
       Culture=neutral, PublicKeyToken=null
-  m_IsOn: 0
---- !u!114 &11415294
-MonoBehaviour:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 126098}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 571159103, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_ShowEngineerToggle: {fileID: 11485338}
-  m_ControlBarToggle: {fileID: 11415068}
-  m_MenuSectionPrefab: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2}
-  m_ContentTransform: {fileID: 22475412}
-  m_FastFadeDuration: .200000003
-  m_SlowFadeDuration: .5
 --- !u!114 &11423044
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -453,24 +560,6 @@
   m_PreferredHeight: 15
   m_FlexibleWidth: -1
   m_FlexibleHeight: -1
---- !u!114 &11445012
-MonoBehaviour:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 104160}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_IgnoreLayout: 0
-  m_MinWidth: -1
-  m_MinHeight: -1
-  m_PreferredWidth: -1
-  m_PreferredHeight: -1
-  m_FlexibleWidth: -1
-  m_FlexibleHeight: -1
 --- !u!114 &11451984
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -552,6 +641,26 @@
   m_PreferredHeight: 15
   m_FlexibleWidth: -1
   m_FlexibleHeight: -1
+--- !u!114 &11462752
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 157290}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 4
+    m_Bottom: 4
+  m_ChildAlignment: 0
+  m_Spacing: 4
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 0
 --- !u!114 &11463504
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -579,12 +688,12 @@
   m_FillAmount: 1
   m_FillClockwise: 1
   m_FillOrigin: 0
---- !u!114 &11465882
-MonoBehaviour:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 137786}
+--- !u!114 &11465050
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 193852}
   m_Enabled: 1
   m_EditorHideFlags: 0
   m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
@@ -611,6 +720,38 @@
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: CONTROL BAR
+--- !u!114 &11465882
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 137786}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0, g: 0, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 10
+    m_FontStyle: 1
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: NEW CUSTOM SECTION
 --- !u!114 &11475868
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -638,6 +779,19 @@
   m_FillAmount: 1
   m_FillClockwise: 1
   m_FillOrigin: 0
+--- !u!114 &11483978
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 157290}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 0
+  m_VerticalFit: 2
 --- !u!114 &11485338
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -658,8 +812,8 @@
   m_Transition: 1
   m_Colors:
     m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
-    m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1}
-    m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1}
+    m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
+    m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
     m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
     m_ColorMultiplier: 1
     m_FadeDuration: .100000001
@@ -681,7 +835,7 @@
     m_PersistentCalls:
       m_Calls:
       - m_Target: {fileID: 11415294}
-        m_MethodName: SetShowEngineer
+        m_MethodName: SetDisplayStackVisible
         m_Mode: 0
         m_Arguments:
           m_ObjectArgument: {fileID: 0}
@@ -714,6 +868,33 @@
   m_Spacing: 0
   m_ChildForceExpandWidth: 1
   m_ChildForceExpandHeight: 1
+--- !u!114 &11494262
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 114528}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: .800000072, g: 1, b: 0, a: .501960814}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_Sprite: {fileID: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
 --- !u!114 &11498756
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -765,6 +946,18 @@
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 172308}
+--- !u!222 &22254028
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 114528}
+--- !u!222 &22255200
+CanvasRenderer:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 193852}
 --- !u!222 &22255938
 CanvasRenderer:
   m_ObjectHideFlags: 1
@@ -811,14 +1004,13 @@
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
-  - {fileID: 22454998}
   - {fileID: 22444606}
-  m_Father: {fileID: 22478174}
-  m_RootOrder: 1
-  m_AnchorMin: {x: .5, y: 0}
-  m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 1, y: 0}
-  m_SizeDelta: {x: -2, y: 0}
+  m_Father: {fileID: 22475412}
+  m_RootOrder: 2
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: .5, y: .5}
 --- !u!224 &22401786
 RectTransform:
@@ -854,29 +1046,46 @@
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: .5, y: .5}
---- !u!224 &22444606
-RectTransform:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 137786}
+--- !u!224 &22411946
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 193852}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
-  m_Father: {fileID: 22401100}
+  m_Father: {fileID: 22468796}
   m_RootOrder: 1
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: .5, y: .5}
---- !u!224 &22454998
-RectTransform:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 104452}
+--- !u!224 &22435482
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 157290}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 22475412}
+  m_RootOrder: 1
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: .5, y: .5}
+--- !u!224 &22444606
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 137786}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
@@ -888,6 +1097,23 @@
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: .5, y: .5}
+--- !u!224 &22454998
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 104452}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 22468796}
+  m_RootOrder: 0
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: .5, y: .5}
 --- !u!224 &22463980
 RectTransform:
   m_ObjectHideFlags: 1
@@ -904,6 +1130,25 @@
   m_AnchorMax: {x: 1, y: 1}
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: .5, y: .5}
+--- !u!224 &22468796
+RectTransform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 114528}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 22454998}
+  - {fileID: 22411946}
+  m_Father: {fileID: 22478174}
+  m_RootOrder: 1
+  m_AnchorMin: {x: .5, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 1, y: 0}
+  m_SizeDelta: {x: -2, y: 0}
   m_Pivot: {x: .5, y: .5}
 --- !u!224 &22469574
 RectTransform:
@@ -935,7 +1180,8 @@
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
   - {fileID: 22478174}
-  - {fileID: 22478204}
+  - {fileID: 22435482}
+  - {fileID: 22401100}
   m_Father: {fileID: 22476196}
   m_RootOrder: 1
   m_AnchorMin: {x: 0, y: 0}
@@ -973,26 +1219,9 @@
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
   - {fileID: 22469574}
-  - {fileID: 22401100}
+  - {fileID: 22468796}
   m_Father: {fileID: 22475412}
   m_RootOrder: 0
-  m_AnchorMin: {x: 0, y: 0}
-  m_AnchorMax: {x: 0, y: 0}
-  m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 0, y: 0}
-  m_Pivot: {x: .5, y: .5}
---- !u!224 &22478204
-RectTransform:
-  m_ObjectHideFlags: 1
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 100100000}
-  m_GameObject: {fileID: 104160}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children: []
-  m_Father: {fileID: 22475412}
-  m_RootOrder: 1
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
@@ -1036,11 +1265,11 @@
     m_Modifications:
     - target: {fileID: 0}
       propertyPath: m_FastFadeDuration
-      value: .200000003
+      value: .100000001
       objectReference: {fileID: 0}
     - target: {fileID: 0}
       propertyPath: m_SlowFadeDuration
-      value: .5
+      value: .200000003
       objectReference: {fileID: 0}
     - target: {fileID: 0}
       propertyPath: m_ContentTransform

--- a/Assets/Prefabs/FlightMenuSection.prefab
+++ b/Assets/Prefabs/FlightMenuSection.prefab
@@ -202,8 +202,8 @@
   m_Transition: 1
   m_Colors:
     m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
-    m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1}
-    m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1}
+    m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
+    m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
     m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
     m_ColorMultiplier: 1
     m_FadeDuration: .100000001
@@ -276,8 +276,8 @@
   m_Transition: 1
   m_Colors:
     m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
-    m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1}
-    m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1}
+    m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
+    m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
     m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
     m_ColorMultiplier: 1
     m_FadeDuration: .100000001
@@ -651,6 +651,42 @@
       propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
       value: SetEditorVisible
       objectReference: {fileID: 0}
+    - target: {fileID: 0}
+      propertyPath: m_Colors.m_NormalColor.r
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 0}
+      propertyPath: m_Colors.m_NormalColor.b
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 0}
+      propertyPath: m_Colors.m_HighlightedColor.r
+      value: .467545569
+      objectReference: {fileID: 0}
+    - target: {fileID: 0}
+      propertyPath: m_Colors.m_HighlightedColor.g
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 0}
+      propertyPath: m_Colors.m_HighlightedColor.b
+      value: .448529422
+      objectReference: {fileID: 0}
+    - target: {fileID: 0}
+      propertyPath: m_Colors.m_NormalColor.g
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 0}
+      propertyPath: m_Colors.m_PressedColor.r
+      value: .800000072
+      objectReference: {fileID: 0}
+    - target: {fileID: 0}
+      propertyPath: m_Colors.m_PressedColor.g
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 0}
+      propertyPath: m_Colors.m_PressedColor.b
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_ParentPrefab: {fileID: 0}
   m_RootGameObject: {fileID: 130812}

--- a/Assets/Scenes/main.unity
+++ b/Assets/Scenes/main.unity
@@ -152,300 +152,269 @@
   m_PrefabParentObject: {fileID: 0}
   m_PrefabInternal: {fileID: 0}
   m_GameObject: {fileID: 476101859}
---- !u!1 &533639931
-GameObject:
-  m_ObjectHideFlags: 0
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 0}
-  serializedVersion: 4
-  m_Component:
-  - 224: {fileID: 533639932}
-  - 114: {fileID: 533639933}
-  m_Layer: 5
-  m_Name: Space
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!224 &533639932
-RectTransform:
-  m_ObjectHideFlags: 0
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 0}
-  m_GameObject: {fileID: 533639931}
-  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children: []
-  m_Father: {fileID: 1587294051}
-  m_RootOrder: 1
-  m_AnchorMin: {x: 0, y: 0}
-  m_AnchorMax: {x: 0, y: 0}
-  m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 0, y: 0}
-  m_Pivot: {x: .5, y: .5}
---- !u!114 &533639933
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 0}
-  m_GameObject: {fileID: 533639931}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_IgnoreLayout: 0
-  m_MinWidth: -1
-  m_MinHeight: -1
-  m_PreferredWidth: -1
-  m_PreferredHeight: -1
-  m_FlexibleWidth: -1
-  m_FlexibleHeight: -1
+--- !u!1001 &719682886
+Prefab:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 1866791882}
+    m_Modifications:
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_RootOrder
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.x
+      value: 250
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.y
+      value: 74
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMin.x
+      value: .5
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMin.y
+      value: .5
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMax.x
+      value: .5
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMax.y
+      value: .5
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Pivot.x
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Pivot.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMin.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMax.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.x
+      value: 125
+      objectReference: {fileID: 0}
+    - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.y
+      value: -27
+      objectReference: {fileID: 0}
+    - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.x
+      value: 242
+      objectReference: {fileID: 0}
+    - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.y
+      value: 8
+      objectReference: {fileID: 0}
+    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMin.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMax.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.x
+      value: 125
+      objectReference: {fileID: 0}
+    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.y
+      value: -11.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.x
+      value: 242
+      objectReference: {fileID: 0}
+    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.y
+      value: 15
+      objectReference: {fileID: 0}
+    - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMin.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMax.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.x
+      value: 125
+      objectReference: {fileID: 0}
+    - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.y
+      value: -42.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.x
+      value: 242
+      objectReference: {fileID: 0}
+    - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.y
+      value: 15
+      objectReference: {fileID: 0}
+    - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMin.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMax.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.x
+      value: 125
+      objectReference: {fileID: 0}
+    - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.x
+      value: 250
+      objectReference: {fileID: 0}
+    - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.y
+      value: 20
+      objectReference: {fileID: 0}
+    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMin.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchorMax.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.x
+      value: 125
+      objectReference: {fileID: 0}
+    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_AnchoredPosition.y
+      value: -47
+      objectReference: {fileID: 0}
+    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.x
+      value: 250
+      objectReference: {fileID: 0}
+    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_SizeDelta.y
+      value: 54
+      objectReference: {fileID: 0}
+    - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+      value: SetControlBarVisible
+      objectReference: {fileID: 0}
+    - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+      value: SetDisplayStackVisible
+      objectReference: {fileID: 0}
+    - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_HighlightedColor.r
+      value: .467545569
+      objectReference: {fileID: 0}
+    - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_HighlightedColor.g
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_HighlightedColor.b
+      value: .448529422
+      objectReference: {fileID: 0}
+    - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_PressedColor.r
+      value: .800000072
+      objectReference: {fileID: 0}
+    - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_PressedColor.g
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_PressedColor.b
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_PressedColor.a
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_HighlightedColor.r
+      value: .467545569
+      objectReference: {fileID: 0}
+    - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_HighlightedColor.g
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_HighlightedColor.b
+      value: .448529422
+      objectReference: {fileID: 0}
+    - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_PressedColor.r
+      value: .800000072
+      objectReference: {fileID: 0}
+    - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_PressedColor.g
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+      propertyPath: m_Colors.m_PressedColor.b
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_ParentPrefab: {fileID: 100100000, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
+  m_IsPrefabParent: 0
 --- !u!224 &1026898450 stripped
 RectTransform:
   m_PrefabParentObject: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f,
     type: 2}
-  m_PrefabInternal: {fileID: 1220268543}
---- !u!1001 &1220268543
-Prefab:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 1866791882}
-    m_Modifications:
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_RootOrder
-      value: 2
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.x
-      value: 250
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.y
-      value: 47
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchorMin.x
-      value: .5
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchorMin.y
-      value: .5
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchorMax.x
-      value: .5
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchorMax.y
-      value: .5
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Pivot.x
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Pivot.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchorMin.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchorMax.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.x
-      value: 125
-      objectReference: {fileID: 0}
-    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.y
-      value: -11.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.x
-      value: 242
-      objectReference: {fileID: 0}
-    - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.y
-      value: 15
-      objectReference: {fileID: 0}
-    - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchorMin.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchorMax.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.x
-      value: 125
-      objectReference: {fileID: 0}
-    - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.x
-      value: 250
-      objectReference: {fileID: 0}
-    - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.y
-      value: 20
-      objectReference: {fileID: 0}
-    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchorMin.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchorMax.y
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.x
-      value: 125
-      objectReference: {fileID: 0}
-    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.y
-      value: -33.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.x
-      value: 250
-      objectReference: {fileID: 0}
-    - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.y
-      value: 27
-      objectReference: {fileID: 0}
-    - target: {fileID: 11461688, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_PreferredHeight
-      value: 15
-      objectReference: {fileID: 0}
-    - target: {fileID: 11451984, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_PreferredHeight
-      value: 15
-      objectReference: {fileID: 0}
-    - target: {fileID: 150266, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Name
-      value: Selected
-      objectReference: {fileID: 0}
-    - target: {fileID: 138760, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Name
-      value: Text
-      objectReference: {fileID: 0}
-    - target: {fileID: 104452, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Name
-      value: Selected
-      objectReference: {fileID: 0}
-    - target: {fileID: 137786, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Name
-      value: Text
-      objectReference: {fileID: 0}
-    - target: {fileID: 11465882, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_FontData.m_FontSize
-      value: 10
-      objectReference: {fileID: 0}
-    - target: {fileID: 11403342, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_FontData.m_FontSize
-      value: 10
-      objectReference: {fileID: 0}
-    - target: {fileID: 22469574, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.x
-      value: -1
-      objectReference: {fileID: 0}
-    - target: {fileID: 22469574, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.x
-      value: -2
-      objectReference: {fileID: 0}
-    - target: {fileID: 22469574, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22469574, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.x
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.x
-      value: -2
-      objectReference: {fileID: 0}
-    - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 11443382, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_PreferredHeight
-      value: 15
-      objectReference: {fileID: 0}
-    - target: {fileID: 11424646, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Padding.m_Left
-      value: 4
-      objectReference: {fileID: 0}
-    - target: {fileID: 11424646, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Padding.m_Right
-      value: 4
-      objectReference: {fileID: 0}
-    - target: {fileID: 11424646, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Padding.m_Top
-      value: 4
-      objectReference: {fileID: 0}
-    - target: {fileID: 11424646, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Padding.m_Bottom
-      value: 4
-      objectReference: {fileID: 0}
-    - target: {fileID: 11424646, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-      propertyPath: m_Spacing
-      value: 4
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_ParentPrefab: {fileID: 100100000, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
-  m_IsPrefabParent: 0
+  m_PrefabInternal: {fileID: 719682886}
 --- !u!1 &1398276586
 GameObject:
   m_ObjectHideFlags: 0
@@ -520,11 +489,6 @@
   m_Children: []
   m_Father: {fileID: 0}
   m_RootOrder: 2
---- !u!224 &1587294051 stripped
-RectTransform:
-  m_PrefabParentObject: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f,
-    type: 2}
-  m_PrefabInternal: {fileID: 1220268543}
 --- !u!1 &1866791878
 GameObject:
   m_ObjectHideFlags: 0

--- a/KerbalEngineer.Unity/CanvasGroupFader.cs
+++ b/KerbalEngineer.Unity/CanvasGroupFader.cs
@@ -28,7 +28,7 @@
         private CanvasGroup m_CanvasGroup;
         private IEnumerator m_FadeCoroutine;
 
-        public bool fading
+        public bool IsFading
         {
             get
             {
@@ -88,6 +88,9 @@
         /// </summary>
         private IEnumerator FadeCoroutine(float from, float to, float duration, Action callback)
         {
+            // wait for end of frame so that only the last call to fade that frame is honoured.
+            yield return new WaitForEndOfFrame();
+
             float progress = 0.0f;
 
             while (progress <= 1.0f)

--- a/KerbalEngineer.Unity/Flight/FlightMenu.cs
+++ b/KerbalEngineer.Unity/Flight/FlightMenu.cs
@@ -23,6 +23,7 @@
     using UnityEngine.EventSystems;
     using UnityEngine.UI;
 
+    [RequireComponent(typeof(RectTransform))]
     public class FlightMenu : CanvasGroupFader, IPointerEnterHandler, IPointerExitHandler
     {
         [SerializeField]
@@ -35,7 +36,7 @@
         private GameObject m_MenuSectionPrefab = null;
 
         [SerializeField]
-        private Transform m_ContentTransform = null;
+        private Transform m_SectionsTransform = null;
 
         [SerializeField]
         private float m_FastFadeDuration = 0.2f;
@@ -44,6 +45,7 @@
         private float m_SlowFadeDuration = 1.0f;
 
         private IFlightAppLauncher m_FlightAppLauncher;
+        private RectTransform m_RectTransform;
 
         public void OnPointerEnter(PointerEventData eventData)
         {
@@ -53,7 +55,7 @@
         public void OnPointerExit(PointerEventData eventData)
         {
             // slow-fade out if the application launcher button is off
-            if (m_FlightAppLauncher != null && m_FlightAppLauncher.isOn == false)
+            if (m_FlightAppLauncher != null && m_FlightAppLauncher.IsOn == false)
             {
                 FadeTo(0.0f, m_SlowFadeDuration, Destroy);
             }
@@ -76,13 +78,35 @@
         }
 
         /// <summary>
+        ///     Creates a new custom section.
+        /// </summary>
+        public void NewCustomSection()
+        {
+            if (m_FlightAppLauncher != null)
+            {
+                CreateSectionControl(m_FlightAppLauncher.NewCustomSection());
+            }
+        }
+
+        /// <summary>
         ///     Sets the control bar visiblity.
         /// </summary>
-        public void SetControlBar(bool visible)
+        public void SetControlBarVisible(bool visible)
         {
             if (m_FlightAppLauncher != null)
             {
-                m_FlightAppLauncher.controlBar = visible;
+                m_FlightAppLauncher.IsControlBarVisible = visible;
+            }
+        }
+
+        /// <summary>
+        ///     Sets the display stack visibility.
+        /// </summary>
+        public void SetDisplayStackVisible(bool visible)
+        {
+            if (m_FlightAppLauncher != null)
+            {
+                m_FlightAppLauncher.IsDisplayStackVisible = visible;
             }
         }
 
@@ -103,15 +127,12 @@
             CreateSectionControls(m_FlightAppLauncher.GetCustomSections());
         }
 
-        /// <summary>
-        ///     Sets the display stack visibility.
-        /// </summary>
-        public void SetShowEngineer(bool visible)
-        {
-            if (m_FlightAppLauncher != null)
-            {
-                m_FlightAppLauncher.showEngineer = visible;
-            }
+        protected override void Awake()
+        {
+            base.Awake();
+
+            // cache components
+            m_RectTransform = GetComponent<RectTransform>();
         }
 
         protected virtual void Start()
@@ -123,11 +144,20 @@
 
         protected virtual void Update()
         {
+            if (m_FlightAppLauncher == null)
+            {
+                return;
+            }
+
             // set toggle states to match the actual states
-            if (m_FlightAppLauncher != null)
-            {
-                SetToggle(m_ShowEngineerToggle, m_FlightAppLauncher.showEngineer);
-                SetToggle(m_ControlBarToggle, m_FlightAppLauncher.controlBar);
+            SetToggle(m_ShowEngineerToggle, m_FlightAppLauncher.IsDisplayStackVisible);
+            SetToggle(m_ControlBarToggle, m_FlightAppLauncher.IsControlBarVisible);
+
+            // update anchor position
+            if (m_RectTransform != null)
+            {
+                m_RectTransform.position = m_FlightAppLauncher.GetAnchor();
+                m_FlightAppLauncher.ClampToScreen(m_RectTransform);
             }
         }
 
@@ -143,30 +173,14 @@
         }
 
         /// <summary>
-        ///     Creates a list of section controls from a given list of sections.
-        /// </summary>
-        private void CreateSectionControls(IList<ISectionModule> sections)
-        {
-            if (sections == null || m_MenuSectionPrefab == null || m_ContentTransform == null)
-            {
-                return;
-            }
-
-            for (int i = 0; i < sections.Count; i++)
-            {
-                ISectionModule section = sections[i];
-                if (section == null)
-                {
-                    continue;
-                }
-
-                GameObject menuSectionObject = Instantiate(m_MenuSectionPrefab);
-                if (menuSectionObject == null)
-                {
-                    continue;
-                }
-
-                menuSectionObject.transform.SetParent(m_ContentTransform, false);
+        ///     Creates a menu section control.
+        /// </summary>
+        private void CreateSectionControl(ISectionModule section)
+        {
+            GameObject menuSectionObject = Instantiate(m_MenuSectionPrefab);
+            if (menuSectionObject != null)
+            {
+                menuSectionObject.transform.SetParent(m_SectionsTransform, false);
 
                 FlightMenuSection menuSection = menuSectionObject.GetComponent<FlightMenuSection>();
                 if (menuSection != null)
@@ -177,6 +191,26 @@
         }
 
         /// <summary>
+        ///     Creates a list of section controls from a given list of sections.
+        /// </summary>
+        private void CreateSectionControls(IList<ISectionModule> sections)
+        {
+            if (sections == null || m_MenuSectionPrefab == null || m_SectionsTransform == null)
+            {
+                return;
+            }
+
+            for (int i = 0; i < sections.Count; i++)
+            {
+                ISectionModule section = sections[i];
+                if (section != null)
+                {
+                    CreateSectionControl(section);
+                }
+            }
+        }
+
+        /// <summary>
         ///     Destroys the game object.
         /// </summary>
         private void Destroy()

--- a/KerbalEngineer.Unity/Flight/FlightMenuSection.cs
+++ b/KerbalEngineer.Unity/Flight/FlightMenuSection.cs
@@ -37,7 +37,7 @@
         /// <summary>
         ///     Gets or sets the section's editor visibility.
         /// </summary>
-        public bool editorVisible
+        public bool IsEditorVisible
         {
             get
             {
@@ -102,8 +102,9 @@
         /// </summary>
         private void UpdateControls()
         {
-            if (m_Section == null)
+            if (m_Section == null || m_Section.IsDeleted)
             {
+                Destroy(gameObject);
                 return;
             }
 
@@ -116,7 +117,7 @@
             // display name
             if (m_DisplayText != null)
             {
-                m_DisplayText.text = m_Section.Name;
+                m_DisplayText.text = m_Section.Name.ToUpperInvariant();
             }
 
             // editor visible

--- a/KerbalEngineer.Unity/Flight/IFlightAppLauncher.cs
+++ b/KerbalEngineer.Unity/Flight/IFlightAppLauncher.cs
@@ -19,17 +19,24 @@
 namespace KerbalEngineer.Unity.Flight
 {
     using System.Collections.Generic;
+    using UnityEngine;
 
     public interface IFlightAppLauncher
     {
-        bool controlBar { get; set; }
+        bool IsControlBarVisible { get; set; }
 
-        bool isOn { get; }
+        bool IsDisplayStackVisible { get; set; }
 
-        bool showEngineer { get; set; }
+        bool IsOn { get; }
+
+        void ClampToScreen(RectTransform rectTransform);
+
+        Vector3 GetAnchor();
 
         IList<ISectionModule> GetCustomSections();
 
         IList<ISectionModule> GetStockSections();
+
+        ISectionModule NewCustomSection();
     }
 }

--- a/KerbalEngineer.Unity/Flight/ISectionModule.cs
+++ b/KerbalEngineer.Unity/Flight/ISectionModule.cs
@@ -20,6 +20,8 @@
 {
     public interface ISectionModule
     {
+        bool IsDeleted { get; }
+
         bool IsEditorVisible { get; set; }
 
         bool IsVisible { get; set; }

--- a/KerbalEngineer/AppLauncherButton.cs
+++ b/KerbalEngineer/AppLauncherButton.cs
@@ -30,7 +30,7 @@
         /// <summary>
         ///     Gets or sets the toggle button state.
         /// </summary>
-        public bool isOn
+        public bool IsOn
         {
             get
             {
@@ -77,7 +77,7 @@
                 m_Button.Enable();
             }
         }
-        
+
         /// <summary>
         ///     Gets the anchor position for pop-up content.
         /// </summary>
@@ -87,7 +87,7 @@
             {
                 return Vector3.zero;
             }
-            
+
             Vector3 anchor = m_Button.GetAnchor();
 
             anchor.x -= 3.0f;
@@ -104,29 +104,29 @@
 
             if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.False)
             {
+                m_Button.SetFalse();
+            }
+        }
+
+        /// <summary>
+        ///     Enables and sets the button to on.
+        /// </summary>
+        public void SetOn()
+        {
+            Enable();
+
+            if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.True)
+            {
                 m_Button.SetTrue();
             }
         }
 
-        /// <summary>
-        ///     Enables and sets the button to on.
-        /// </summary>
-        public void SetOn()
-        {
-            Enable();
-
-            if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.True)
-            {
-                m_Button.SetTrue();
-            }
-        }
-
         protected virtual void Awake()
         {
             // cache icon texture
-            if (m_IconTexture == null && AssetBundleLoader.images != null)
-            {
-                m_IconTexture = AssetBundleLoader.images.LoadAsset<Texture2D>("app-launcher-icon");
+            if (m_IconTexture == null && AssetBundleLoader.Images != null)
+            {
+                m_IconTexture = AssetBundleLoader.Images.LoadAsset<Texture2D>("app-launcher-icon");
             }
 
             // subscribe event listeners

--- a/KerbalEngineer/AssetBundleLoader.cs
+++ b/KerbalEngineer/AssetBundleLoader.cs
@@ -29,7 +29,7 @@
         /// <summary>
         ///     Gets the loaded images asset bundle.
         /// </summary>
-        public static AssetBundle images
+        public static AssetBundle Images
         {
             get
             {
@@ -40,7 +40,7 @@
         /// <summary>
         ///     Gets the loaded prefabs asset bundle.
         /// </summary>
-        public static AssetBundle prefabs
+        public static AssetBundle Prefabs
         {
             get
             {

--- a/KerbalEngineer/Editor/BuildAppLauncher.cs
+++ b/KerbalEngineer/Editor/BuildAppLauncher.cs
@@ -48,7 +48,7 @@
             if (EditorLogic.RootPart != null)
             {
                 // set button state based on existing visibility
-                isOn = BuildAdvanced.Instance.Visible;
+                IsOn = BuildAdvanced.Instance.Visible;
             }
             else
             {

--- a/KerbalEngineer/Flight/FlightAppLauncher.cs
+++ b/KerbalEngineer/Flight/FlightAppLauncher.cs
@@ -19,6 +19,7 @@
 namespace KerbalEngineer.Flight
 {
     using System.Collections.Generic;
+    using KSP.UI;
     using Sections;
     using Unity.Flight;
     using UnityEngine;
@@ -31,12 +32,10 @@
         private GameObject m_MenuObject;
         private GameObject m_MenuPrefab;
 
-        public IList<ISectionModule> GetCustomSections { get; }
-
         /// <summary>
         ///     Gets the current instance of the FlightAppLauncher object.
         /// </summary>
-        public static FlightAppLauncher instance
+        public static FlightAppLauncher Instance
         {
             get
             {
@@ -45,9 +44,33 @@
         }
 
         /// <summary>
+        ///     Clamps the given rect transform within the screen bounds.
+        /// </summary>
+        public void ClampToScreen(RectTransform rectTransform)
+        {
+            UIMasterController.ClampToScreen(rectTransform, Vector2.zero);
+        }
+
+        /// <summary>
+        ///     Gets a list of custom sections.
+        /// </summary>
+        IList<ISectionModule> IFlightAppLauncher.GetCustomSections()
+        {
+            return new List<ISectionModule>(SectionLibrary.CustomSections.ToArray());
+        }
+
+        /// <summary>
+        ///     Gets a list of stock sections.
+        /// </summary>
+        IList<ISectionModule> IFlightAppLauncher.GetStockSections()
+        {
+            return new List<ISectionModule>(SectionLibrary.StockSections.ToArray());
+        }
+
+        /// <summary>
         ///     Gets or sets the control bar's visibility.
         /// </summary>
-        public bool controlBar
+        public bool IsControlBarVisible
         {
             get
             {
@@ -67,20 +90,10 @@
             }
         }
 
-        IList<ISectionModule> IFlightAppLauncher.GetCustomSections()
-        {
-            return new List<ISectionModule>(SectionLibrary.CustomSections.ToArray());
-        }
-
-        public IList<ISectionModule> GetStockSections()
-        {
-            return new List<ISectionModule>(SectionLibrary.StockSections.ToArray());
-        }
-
         /// <summary>
         ///     Gets or sets the display stack's visibility.
         /// </summary>
-        public bool showEngineer
+        public bool IsDisplayStackVisible
         {
             get
             {
@@ -98,6 +111,25 @@
                     DisplayStack.Instance.Hidden = !value;
                 }
             }
+        }
+
+        /// <summary>
+        ///     Creates and initialises a new custom section.
+        /// </summary>
+        public ISectionModule NewCustomSection()
+        {
+            SectionModule section = new SectionModule
+            {
+                Name = "Custom " + (SectionLibrary.CustomSections.Count + 1),
+                Abbreviation = "CUST " + (SectionLibrary.CustomSections.Count + 1),
+                IsVisible = true,
+                IsCustom = true,
+                IsEditorVisible = true
+            };
+
+            SectionLibrary.CustomSections.Add(section);
+
+            return section;
         }
 
         protected override void Awake()
@@ -108,9 +140,9 @@
             m_Instance = this;
 
             // cache menu prefab
-            if (m_MenuPrefab == null && AssetBundleLoader.prefabs != null)
-            {
-                m_MenuPrefab = AssetBundleLoader.prefabs.LoadAsset<GameObject>("FlightMenu");
+            if (m_MenuPrefab == null && AssetBundleLoader.Prefabs != null)
+            {
+                m_MenuPrefab = AssetBundleLoader.Prefabs.LoadAsset<GameObject>("FlightMenu");
             }
         }
 
@@ -126,7 +158,7 @@
 
         protected override void OnHoverOut()
         {
-            if (isOn == false)
+            if (IsOn == false)
             {
                 Close();
             }
@@ -146,7 +178,7 @@
             {
                 m_FlightMenu.Close();
             }
-            else
+            else if (m_MenuObject != null)
             {
                 Destroy(m_MenuObject);
             }

--- a/KerbalEngineer/Flight/Sections/SectionEditor.cs
+++ b/KerbalEngineer/Flight/Sections/SectionEditor.cs
@@ -236,6 +236,7 @@
                 {
                     this.ParentSection.IsFloating = false;
                     this.ParentSection.IsEditorVisible = false;
+                    this.ParentSection.IsDeleted = true;
                     SectionLibrary.CustomSections.Remove(this.ParentSection);
                     DisplayStack.Instance.RequestResize();
                 }

--- a/KerbalEngineer/Flight/Sections/SectionModule.cs
+++ b/KerbalEngineer/Flight/Sections/SectionModule.cs
@@ -159,6 +159,11 @@
         }
 
         /// <summary>
+        ///     Gets and sets whether the section module has been deleted.
+        /// </summary>
+        public bool IsDeleted { get; set; }
+
+        /// <summary>
         ///     Gets and sets whether the section module has a background as a HUD.
         /// </summary>
         public bool IsHudBackground { get; set; }

--- a/KerbalEngineer/TapeDriveAnimator.cs
+++ b/KerbalEngineer/TapeDriveAnimator.cs
@@ -1,7 +1,7 @@
 // 
 //     Kerbal Engineer Redux
 // 
-//     Copyright (C) 2014 CYBUTEK
+//     Copyright (C) 2016 CYBUTEK
 // 
 //     This program is free software: you can redistribute it and/or modify
 //     it under the terms of the GNU General Public License as published by
@@ -12,382 +12,392 @@
 //     but WITHOUT ANY WARRANTY; without even the implied warranty of
 //     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 //     GNU General Public License for more details.
-// 
 //     You should have received a copy of the GNU General Public License
 //     along with this program.  If not, see <http://www.gnu.org/licenses/>.
-// 
-
-#region Using Directives
-
-using UnityEngine;
-
-using Random = System.Random;
-
-#endregion
+//  
 
 namespace KerbalEngineer
 {
+    using UnityEngine;
+    using Random = System.Random;
+
     public class TapeDriveAnimator : PartModule
     {
-        #region Public Fields
-
-        [KSPField] public string Lights1 = "";
-        [KSPField] public float Lights1Speed = 0;
-        [KSPField] public string Lights2 = "";
-        [KSPField] public float Lights2Speed = 0;
-        [KSPField] public string Lights3 = "";
-        [KSPField] public float Lights3Speed = 0;
-        [KSPField] public string Lights4 = "";
-        [KSPField] public float Lights4Speed = 0;
-        [KSPField] public string Lights5 = "";
-        [KSPField] public float Lights5Speed = 0;
-        [KSPField] public string Lights6 = "";
-        [KSPField] public float Lights6Speed = 0;
-        [KSPField] public int MaxReelSpeed = 0;
-        [KSPField] public int MaxRepeatTime = 0;
-        [KSPField] public int MinReelSpeed = 0;
-        [KSPField] public int MinRepeatTime = 0;
-        [KSPField] public string Reel1 = "";
-        [KSPField] public float Reel1SpeedRatio = 1;
-        [KSPField] public string Reel2 = "";
-        [KSPField] public float Reel2SpeedRatio = 1;
-        [KSPField] public float RepeatTimeDenominator = 1;
-        [KSPField] public float SpeedChangeAmount = 0;
-        [KSPField] public float SpeedDeadZone = 0;
-        [KSPField] public float SpeedStopZone = 0;
-        [KSPField] public bool UseBakedAnimation = false;
-
-        #endregion
-
-        #region Private Fields
-
-        private float currentTime;
-        private float deltaTime;
-        private Shader lights1ShaderOff;
-        private Transform lights1Transform;
-        private Shader lights2ShaderOff;
-        private Transform lights2Transform;
-        private Shader lights3ShaderOff;
-        private Transform lights3Transform;
-        private Shader lights4ShaderOff;
-        private Transform lights4Transform;
-        private Shader lights5ShaderOff;
-        private Transform lights5Transform;
-        private Shader lights6ShaderOff;
-        private Transform lights6Transform;
-        private Shader lightsShaderOn;
-        private Random random;
-        private Transform reel1Transform;
-        private Transform reel2Transform;
-        private float repeatTime;
-        private bool sceneIsEditor;
-        private float speed;
-        private float targetSpeed;
-        private Renderer renderer;
-        private Light light;
-
-        #endregion
-
-        #region Properties
-
-        private bool isRunning;
+        [KSPField]
+        public string Lights1 = string.Empty;
+
+        [KSPField]
+        public float Lights1Speed = 0;
+
+        [KSPField]
+        public string Lights2 = string.Empty;
+
+        [KSPField]
+        public float Lights2Speed = 0;
+
+        [KSPField]
+        public string Lights3 = string.Empty;
+
+        [KSPField]
+        public float Lights3Speed = 0;
+
+        [KSPField]
+        public string Lights4 = string.Empty;
+
+        [KSPField]
+        public float Lights4Speed = 0;
+
+        [KSPField]
+        public string Lights5 = string.Empty;
+
+        [KSPField]
+        public float Lights5Speed = 0;
+
+        [KSPField]
+        public string Lights6 = string.Empty;
+
+        [KSPField]
+        public float Lights6Speed = 0;
+
+        [KSPField]
+        public int MaxReelSpeed = 0;
+
+        [KSPField]
+        public int MaxRepeatTime = 0;
+
+        [KSPField]
+        public int MinReelSpeed = 0;
+
+        [KSPField]
+        public int MinRepeatTime = 0;
+
+        [KSPField]
+        public string Reel1 = string.Empty;
+
+        [KSPField]
+        public float Reel1SpeedRatio = 1;
+
+        [KSPField]
+        public string Reel2 = string.Empty;
+
+        [KSPField]
+        public float Reel2SpeedRatio = 1;
+
+        [KSPField]
+        public float RepeatTimeDenominator = 1;
+
+        [KSPField]
+        public float SpeedChangeAmount = 0;
+
+        [KSPField]
+        public float SpeedDeadZone = 0;
+
+        [KSPField]
+        public float SpeedStopZone = 0;
+
+        [KSPField]
+        public bool UseBakedAnimation = false;
+
+        private Shader m_ButtonLightOffShader;
+        private Shader m_ButtonLightOnShader;
+        private Material m_ButtonSet1Material;
+        private Material m_ButtonSet2Material;
+        private Material m_ButtonSet3Material;
+        private Material m_ButtonSet4Material;
+        private Material m_ButtonSet5Material;
+        private Material m_ButtonSet6Material;
+        private float m_CurrentTime;
+        private float m_DeltaTime;
+        private bool m_IsRunning;
+        private Random m_Random;
+        private Transform m_Reel1Transform;
+        private Transform m_Reel2Transform;
+        private float m_RepeatTime;
+        private bool m_SceneIsEditor;
+        private float m_Speed;
+        private float m_TargetSpeed;
 
         public bool IsRunning
         {
-            get { return this.isRunning; }
+            get
+            {
+                return m_IsRunning;
+            }
             set
             {
-                this.isRunning = value;
-
-                if (this.isRunning)
-                {
-                    if (this.UseBakedAnimation)
+                m_IsRunning = value;
+
+                if (m_IsRunning)
+                {
+                    if (UseBakedAnimation)
                     {
-                        this.StartBakedAnimation();
+                        StartBakedAnimation();
                     }
                 }
                 else
                 {
-                    if (this.UseBakedAnimation)
+                    if (UseBakedAnimation)
                     {
-                        this.StopBakedAnimation();
+                        StopBakedAnimation();
                     }
                 }
             }
         }
 
-        #endregion
-
-        #region Initialisation
-
         public override void OnStart(StartState state)
         {
-            renderer = GetComponent<Renderer>();
-
-            this.random = new Random();
-
-            this.StopBakedAnimation();
-            this.IsRunning = false;
+            m_Random = new Random();
+
+            StopBakedAnimation();
+            IsRunning = false;
 
             if (HighLogic.LoadedSceneIsEditor)
             {
-                this.part.OnEditorAttach += this.OnEditorAttach;
-                this.part.OnEditorDetach += this.OnEditorDetach;
-
-                this.sceneIsEditor = true;
-
-                if (this.part.parent != null)
-                {
-                    this.IsRunning = true;
+                part.OnEditorAttach += OnEditorAttach;
+                part.OnEditorDetach += OnEditorDetach;
+
+                m_SceneIsEditor = true;
+
+                if (part.parent != null)
+                {
+                    IsRunning = true;
                 }
             }
             else if (HighLogic.LoadedSceneIsFlight)
             {
-                this.IsRunning = true;
-            }
-
-            if (!this.UseBakedAnimation)
-            {
-                this.InitialiseReels();
-                this.InitialiseLights();
-            }
+                IsRunning = true;
+            }
+
+            if (UseBakedAnimation == false)
+            {
+                InitialiseReels();
+                InitialiseLights();
+            }
+        }
+
+        public override void OnUpdate()
+        {
+            if (UseBakedAnimation)
+            {
+                return;
+            }
+
+            m_DeltaTime = m_SceneIsEditor ? Time.deltaTime : TimeWarp.deltaTime;
+
+            if (TimeWarp.CurrentRate != 1.0f && TimeWarp.WarpMode != TimeWarp.Modes.LOW)
+            {
+                return;
+            }
+
+            if (IsRunning)
+            {
+                UpdateTimerCycle();
+                UpdateSpeed();
+                UpdateReels();
+                UpdateLights();
+            }
+            else
+            {
+                m_TargetSpeed = 0;
+
+                if (m_Speed != 0)
+                {
+                    UpdateSpeed();
+                    UpdateReels();
+                    UpdateLights();
+                }
+            }
+        }
+
+        private static void SetShaderOnMaterial(Material material, Shader shader)
+        {
+            if (material != null && shader != null)
+            {
+                material.shader = shader;
+            }
+        }
+
+        private Material GetMaterialOnModelTransform(string transformName)
+        {
+            Transform modelTransform = GetModelTransform(transformName);
+            if (modelTransform != null)
+            {
+                Renderer renderer = modelTransform.GetComponent<Renderer>();
+                if (renderer != null)
+                {
+                    return renderer.material;
+                }
+            }
+
+            return null;
+        }
+
+        private Transform GetModelTransform(string transformName)
+        {
+            if (string.IsNullOrEmpty(transformName) == false)
+            {
+                return part.FindModelTransform(transformName);
+            }
+
+            return null;
+        }
+
+        private void InitialiseLights()
+        {
+            m_ButtonSet1Material = GetMaterialOnModelTransform(Lights1);
+            m_ButtonSet2Material = GetMaterialOnModelTransform(Lights2);
+            m_ButtonSet3Material = GetMaterialOnModelTransform(Lights3);
+            m_ButtonSet4Material = GetMaterialOnModelTransform(Lights4);
+            m_ButtonSet5Material = GetMaterialOnModelTransform(Lights5);
+            m_ButtonSet6Material = GetMaterialOnModelTransform(Lights6);
+
+            m_ButtonLightOffShader = Shader.Find("KSP/Specular");
+            m_ButtonLightOnShader = Shader.Find("KSP/Unlit");
         }
 
         private void InitialiseReels()
         {
-            if (this.Reel1 != "")
-            {
-                this.reel1Transform = this.part.FindModelTransform(this.Reel1);
-            }
-
-            if (this.Reel2 != "")
-            {
-                this.reel2Transform = this.part.FindModelTransform(this.Reel2);
-            }
-        }
-
-        private void InitialiseLights()
-        {
-            if (this.Lights1 != "")
-            {
-                this.lights1Transform = this.part.FindModelTransform(this.Lights1);
-                this.lights1ShaderOff = renderer.material.shader;
-            }
-
-            if (this.Lights2 != "")
-            {
-                this.lights2Transform = this.part.FindModelTransform(this.Lights2);
-                this.lights2ShaderOff = renderer.material.shader;
-            }
-
-            if (this.Lights3 != "")
-            {
-                this.lights3Transform = this.part.FindModelTransform(this.Lights3);
-                this.lights3ShaderOff = renderer.material.shader;
-            }
-
-            if (this.Lights4 != "")
-            {
-                this.lights4Transform = this.part.FindModelTransform(this.Lights4);
-                this.lights4ShaderOff = renderer.material.shader;
-            }
-
-            if (this.Lights5 != "")
-            {
-                this.lights5Transform = this.part.FindModelTransform(this.Lights5);
-                this.lights5ShaderOff = renderer.material.shader;
-            }
-
-            if (this.Lights6 != "")
-            {
-                this.lights6Transform = this.part.FindModelTransform(this.Lights6);
-                this.lights6ShaderOff = renderer.material.shader;
-            }
-
-            this.lightsShaderOn = Shader.Find("Unlit/Texture");
-        }
-
-        #endregion
-
-        #region Updating
-
-        public override void OnUpdate()
-        {
-            if (!this.UseBakedAnimation)
-            {
-                this.deltaTime = this.sceneIsEditor ? Time.deltaTime : TimeWarp.deltaTime;
-
-                if (TimeWarp.CurrentRate != 1.0f && TimeWarp.WarpMode != TimeWarp.Modes.LOW)
-                {
-                    return;
-                }
-
-                if (this.IsRunning)
-                {
-                    this.UpdateTimerCycle();
-                    this.UpdateSpeed();
-                    this.UpdateReels();
-                    this.UpdateLights();
+            if (string.IsNullOrEmpty(Reel1) == false)
+            {
+                m_Reel1Transform = part.FindModelTransform(Reel1);
+            }
+
+            if (string.IsNullOrEmpty(Reel2) == false)
+            {
+                m_Reel2Transform = part.FindModelTransform(Reel2);
+            }
+        }
+
+        private void OnEditorAttach()
+        {
+            IsRunning = true;
+        }
+
+        private void OnEditorDetach()
+        {
+            IsRunning = false;
+        }
+
+        private void StartBakedAnimation()
+        {
+            foreach (Animation animator in part.FindModelAnimators())
+            {
+                animator.Play();
+            }
+        }
+
+        private void StopBakedAnimation()
+        {
+            foreach (Animation animator in part.FindModelAnimators())
+            {
+                animator.Stop();
+            }
+        }
+
+        private void Update()
+        {
+            if (m_SceneIsEditor)
+            {
+                OnUpdate();
+            }
+        }
+
+        private void UpdateButtonMaterial(Material material, float targetSpeed)
+        {
+            if (material == null)
+            {
+                return;
+            }
+
+            bool lightsOn;
+
+            if (targetSpeed > 0)
+            {
+                lightsOn = (m_Speed > targetSpeed);
+            }
+            else if (targetSpeed < 0)
+            {
+                lightsOn = (m_Speed < targetSpeed);
+            }
+            else
+            {
+                lightsOn = (m_Speed == 0);
+            }
+
+            SetShaderOnMaterial(material, lightsOn ? m_ButtonLightOnShader : m_ButtonLightOffShader);
+        }
+
+        private void UpdateLights()
+        {
+            UpdateButtonMaterial(m_ButtonSet1Material, Lights1Speed);
+            UpdateButtonMaterial(m_ButtonSet2Material, Lights2Speed);
+            UpdateButtonMaterial(m_ButtonSet3Material, Lights3Speed);
+            UpdateButtonMaterial(m_ButtonSet4Material, Lights4Speed);
+            UpdateButtonMaterial(m_ButtonSet5Material, Lights5Speed);
+            UpdateButtonMaterial(m_ButtonSet6Material, Lights6Speed);
+        }
+
+        private void UpdateReels()
+        {
+            if (m_Reel1Transform != null && m_Speed != 0)
+            {
+                m_Reel1Transform.transform.Rotate(Vector3.right, m_Speed * Reel1SpeedRatio);
+            }
+
+            if (m_Reel2Transform != null && m_Speed != 0)
+            {
+                m_Reel2Transform.transform.Rotate(Vector3.right, m_Speed * Reel2SpeedRatio);
+            }
+        }
+
+        private void UpdateSpeed()
+        {
+            if (m_Speed < m_TargetSpeed)
+            {
+                if (m_Speed < m_TargetSpeed - SpeedDeadZone)
+                {
+                    m_Speed += SpeedChangeAmount * m_DeltaTime;
                 }
                 else
                 {
-                    this.targetSpeed = 0;
-
-                    if (this.speed != 0)
-                    {
-                        this.UpdateSpeed();
-                        this.UpdateReels();
-                        this.UpdateLights();
-                    }
-                }
-            }
-        }
-
-        private void Update()
-        {
-            if (this.sceneIsEditor)
-            {
-                this.OnUpdate();
-            }
-        }
-
-        private void OnEditorAttach()
-        {
-            this.IsRunning = true;
-        }
-
-        private void OnEditorDetach()
-        {
-            this.IsRunning = false;
-        }
-
-        private void StopBakedAnimation()
-        {
-            foreach (var animator in this.part.FindModelAnimators())
-            {
-                animator.Stop();
-            }
-        }
-
-        private void StartBakedAnimation()
-        {
-            foreach (var animator in this.part.FindModelAnimators())
-            {
-                animator.Play();
+                    m_Speed = m_TargetSpeed;
+                }
+            }
+            else if (m_Speed > m_TargetSpeed)
+            {
+                if (m_Speed > m_TargetSpeed + SpeedDeadZone)
+                {
+                    m_Speed -= SpeedChangeAmount * m_DeltaTime;
+                }
+                else
+                {
+                    m_Speed = m_TargetSpeed;
+                }
             }
         }
 
         private void UpdateTimerCycle()
         {
-            this.currentTime += this.deltaTime;
-
-            if (this.currentTime >= this.repeatTime)
-            {
-                this.targetSpeed = this.random.Next(this.MinReelSpeed, this.MaxReelSpeed);
-
-                if (this.targetSpeed > -this.SpeedStopZone && this.targetSpeed < this.SpeedStopZone)
-                {
-                    this.targetSpeed = 0;
-                }
-
-                this.repeatTime = this.random.Next(this.MinRepeatTime, this.MaxRepeatTime);
-
-                if (this.RepeatTimeDenominator != 0)
-                {
-                    this.repeatTime /= this.RepeatTimeDenominator;
-                }
-
-                this.currentTime -= this.repeatTime;
-            }
-        }
-
-        private void UpdateSpeed()
-        {
-            if (this.speed < this.targetSpeed)
-            {
-                if (this.speed < this.targetSpeed - this.SpeedDeadZone)
-                {
-                    this.speed += this.SpeedChangeAmount * this.deltaTime;
-                }
-                else
-                {
-                    this.speed = this.targetSpeed;
-                }
-            }
-            else if (this.speed > this.targetSpeed)
-            {
-                if (this.speed > this.targetSpeed + this.SpeedDeadZone)
-                {
-                    this.speed -= this.SpeedChangeAmount * this.deltaTime;
-                }
-                else
-                {
-                    this.speed = this.targetSpeed;
-                }
-            }
-        }
-
-        private void UpdateReels()
-        {
-            if (this.reel1Transform != null && this.speed != 0)
-            {
-                this.reel1Transform.transform.Rotate(Vector3.right, this.speed * this.Reel1SpeedRatio);
-            }
-
-            if (this.reel2Transform != null && this.speed != 0)
-            {
-                this.reel2Transform.transform.Rotate(Vector3.right, this.speed * this.Reel2SpeedRatio);
-            }
-        }
-
-        private void UpdateLights()
-        {
-            if (this.lights1Transform != null)
-            {
-                this.UpdateLightTransform(this.lights1Transform, this.lightsShaderOn, this.lights1ShaderOff, this.Lights1Speed);
-            }
-            if (this.lights2Transform != null)
-            {
-                this.UpdateLightTransform(this.lights2Transform, this.lightsShaderOn, this.lights2ShaderOff, this.Lights2Speed);
-            }
-            if (this.lights3Transform != null)
-            {
-                this.UpdateLightTransform(this.lights3Transform, this.lightsShaderOn, this.lights3ShaderOff, this.Lights3Speed);
-            }
-            if (this.lights4Transform != null)
-            {
-                this.UpdateLightTransform(this.lights4Transform, this.lightsShaderOn, this.lights4ShaderOff, this.Lights4Speed);
-            }
-            if (this.lights5Transform != null)
-            {
-                this.UpdateLightTransform(this.lights5Transform, this.lightsShaderOn, this.lights5ShaderOff, this.Lights5Speed);
-            }
-            if (this.lights6Transform != null)
-            {
-                this.UpdateLightTransform(this.lights6Transform, this.lightsShaderOn, this.lights6ShaderOff, this.Lights6Speed);
-            }
-        }
-
-        private void UpdateLightTransform(Component lights, Shader on, Shader off, float targetSpeed)
-        {
-            bool lightsOn;
-
-            if (targetSpeed > 0)
-            {
-                lightsOn = (this.speed > targetSpeed);
-            }
-            else if (targetSpeed < 0)
-            {
-                lightsOn = (this.speed < targetSpeed);
-            }
-            else
-            {
-                lightsOn = (this.speed == 0);
-            }
-
-            lights.GetComponent<Renderer>().material.shader = lightsOn ? @on : off;
-        }
-
-        #endregion
+            m_CurrentTime += m_DeltaTime;
+
+            if (m_CurrentTime >= m_RepeatTime)
+            {
+                m_TargetSpeed = m_Random.Next(MinReelSpeed, MaxReelSpeed);
+
+                if (m_TargetSpeed > -SpeedStopZone && m_TargetSpeed < SpeedStopZone)
+                {
+                    m_TargetSpeed = 0;
+                }
+
+                m_RepeatTime = m_Random.Next(MinRepeatTime, MaxRepeatTime);
+
+                if (RepeatTimeDenominator != 0)
+                {
+                    m_RepeatTime /= RepeatTimeDenominator;
+                }
+
+                m_CurrentTime -= m_RepeatTime;
+            }
+        }
     }
 }

 Binary files a/Output/KerbalEngineer/KerbalEngineer and b/Output/KerbalEngineer/KerbalEngineer differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.Unity.dll and b/Output/KerbalEngineer/KerbalEngineer.Unity.dll differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ
 Binary files a/Output/KerbalEngineer/prefabs and b/Output/KerbalEngineer/prefabs differ
--- a/Output/KerbalEngineer/prefabs.manifest
+++ b/Output/KerbalEngineer/prefabs.manifest
@@ -1,12 +1,12 @@
 ManifestFileVersion: 0
-CRC: 2073293926
+CRC: 3889460463
 Hashes:
   AssetFileHash:
     serializedVersion: 2
-    Hash: ea5be12ca0c34c6209c093eb01797f22
+    Hash: dc7af1c2d3aa8684359541d179f53bae
   TypeTreeHash:
     serializedVersion: 2
-    Hash: e9cf51f1b73149b326a2db40fe611c59
+    Hash: a43c45227b2ed7e5db39229032ceda8b
 HashAppended: 0
 ClassTypes:
 - Class: 1
@@ -17,6 +17,8 @@
   Script: {instanceID: 0}
 - Class: 48
   Script: {instanceID: 0}
+- Class: 114
+  Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
 - Class: 114
   Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
 - Class: 114