VOID_StageInfo: Some tweaks to column widths.
VOID_StageInfo: Some tweaks to column widths.

--- a/VOID_Core.cs
+++ b/VOID_Core.cs
@@ -120,9 +120,8 @@
 		protected int _windowID = 0;
 
 		protected bool GUIStylesLoaded = false;
-		protected Dictionary<string, GUIStyle> _LabelStyles = new Dictionary<string, GUIStyle>();
-
-		protected CelestialBody _Kerbin;
+
+		protected CelestialBody _homeBody;
 
 		[AVOID_SaveValue("togglePower")]
 		public VOID_SaveValue<bool> togglePower = true;
@@ -230,14 +229,6 @@
 			}
 		}
 
-		public Dictionary<string, GUIStyle> LabelStyles
-		{
-			get
-			{
-				return this._LabelStyles;
-			}
-		}
-
 		public List<CelestialBody> allBodies
 		{
 			get
@@ -252,19 +243,19 @@
 			private set;
 		}
 
-		public CelestialBody Kerbin
-		{
-			get
-			{
-				if (this._Kerbin == null)
-				{
-					if (FlightGlobals.Bodies != null)
+		public CelestialBody HomeBody
+		{
+			get
+			{
+				if (this._homeBody == null)
+				{
+					if (Planetarium.fetch != null)
 					{
-						this._Kerbin = FlightGlobals.Bodies.First(b => b.name == "Kerbin");
+						this._homeBody = Planetarium.fetch.Home;
 					}
 				}
 
-				return this._Kerbin;
+				return this._homeBody;
 			}
 		}
 

--- a/VOID_Data.cs
+++ b/VOID_Data.cs
@@ -47,7 +47,7 @@
 			{
 				if (kerbinGee == default(double))
 				{
-					kerbinGee = core.Kerbin.gravParameter / (core.Kerbin.Radius * core.Kerbin.Radius);
+					kerbinGee = core.HomeBody.gravParameter / (core.HomeBody.Radius * core.HomeBody.Radius);
 				}
 
 				return kerbinGee;
@@ -726,6 +726,20 @@
 
 		#region Kinematics
 
+		public static readonly VOID_DoubleValue geeForce =
+			new VOID_DoubleValue(
+				"G-force",
+				new Func<double>(() => core.vessel.geeForce),
+				"gees"
+			);
+
+		public static readonly VOID_DoubleValue horzVelocity =
+			new VOID_DoubleValue(
+				"Horizontal speed",
+				new Func<double>(() => core.vessel.horizontalSrfSpeed),
+				"m/s"
+			);
+
 		public static readonly VOID_DoubleValue surfVelocity =
 			new VOID_DoubleValue(
 				"Surface velocity",
@@ -740,43 +754,28 @@
 				"m/s"
 			);
 
-		public static readonly VOID_DoubleValue horzVelocity =
-			new VOID_DoubleValue(
-				"Horizontal speed",
-				new Func<double>(() => core.vessel.horizontalSrfSpeed),
-				"m/s"
-			);
-
-		public static readonly VOID_DoubleValue geeForce =
-			new VOID_DoubleValue(
-				"G-force",
-				new Func<double>(() => core.vessel.geeForce),
-				"gees"
-			);
-
-
-		public static readonly VOID_DoubleValue vesselAngularVelocity =
-			new VOID_DoubleValue(
-				"Angular Velocity",
-				delegate()
-				{
-					if (core.vessel != null)
-					{
-						return core.vessel.angularVelocity.magnitude;
-					}
-					else
-					{
-						return double.NaN;
-					}
-				},
-				"rad/s"
-			);
-
 		public static readonly VOID_DoubleValue vesselAccel =
 			new VOID_DoubleValue(
 				"Acceleration",
 				() => geeForce * KerbinGee,
 				"m/s²"
+			);
+
+		public static readonly VOID_DoubleValue vesselAngularVelocity =
+			new VOID_DoubleValue(
+				"Angular Velocity",
+				delegate()
+				{
+					if (core.vessel != null)
+					{
+						return core.vessel.angularVelocity.magnitude;
+					}
+					else
+					{
+						return double.NaN;
+					}
+				},
+				"rad/s"
 			);
 
 		#endregion
@@ -798,108 +797,6 @@
 			}
 		}
 
-		public static readonly VOID_DoubleValue currManeuverDeltaV =
-			new VOID_DoubleValue(
-				"Current Maneuver Delta-V",
-				delegate()
-				{
-					if (upcomingManeuverNodes > 0)
-					{
-						return core.vessel.patchedConicSolver.maneuverNodes[0].DeltaV.magnitude;
-					}
-					else
-					{
-						return double.NaN;
-					}
-				},
-				"m/s"
-			);
-
-		public static readonly VOID_DoubleValue currManeuverDVRemaining =
-			new VOID_DoubleValue(
-				"Remaining Maneuver Delta-V",
-				delegate()
-				{
-					if (upcomingManeuverNodes > 0)
-					{
-						return core.vessel.patchedConicSolver.maneuverNodes[0].GetBurnVector(core.vessel.orbit).magnitude;
-					}
-					else
-					{
-						return double.NaN;
-					}
-				},
-				"m/s"
-			);
-
-		public static readonly VOID_DoubleValue nextManeuverDeltaV =
-			new VOID_DoubleValue(
-				"Current Maneuver Delta-V",
-				delegate()
-				{
-					if (upcomingManeuverNodes > 1)
-					{
-						return core.vessel.patchedConicSolver.maneuverNodes[1].DeltaV.magnitude;
-					}
-					else
-					{
-						return double.NaN;
-					}
-				},
-				"m/s"
-			);
-
-		public static readonly VOID_DoubleValue currentNodeBurnDuration =
-			new VOID_DoubleValue(
-				"Total Burn Time",
-				delegate()
-				{
-					if (core.LastStage == null || currManeuverDeltaV.Value == double.NaN)
-					{
-						return double.NaN;
-					}
-
-					double stageThrust = stageNominalThrust;
-
-					return burnTime(currManeuverDeltaV.Value, totalMass, stageMassFlow, stageThrust);
-				},
-				"s"
-			);
-
-		public static readonly VOID_DoubleValue currentNodeBurnRemaining =
-			new VOID_DoubleValue(
-				"Burn Time Remaining",
-				delegate()
-				{
-					if (core.LastStage == null || currManeuverDVRemaining == double.NaN)
-					{
-						return double.NaN;
-					}
-
-					double stageThrust = stageNominalThrust;
-
-					return burnTime(currManeuverDVRemaining, totalMass, stageMassFlow, stageThrust);
-				},
-				"s"
-			);
-
-		public static readonly VOID_DoubleValue currentNodeHalfBurnDuration =
-			new VOID_DoubleValue(
-				"Half Burn Time",
-				delegate()
-				{
-					if (core.LastStage == null || currManeuverDeltaV.Value == double.NaN)
-					{
-						return double.NaN;
-					}
-
-					double stageThrust = stageNominalThrust;
-
-					return burnTime(currManeuverDeltaV.Value / 2d, totalMass, stageMassFlow, stageThrust);
-				},
-				"s"
-			);
-
 		public static readonly VOID_StrValue burnTimeDoneAtNode =
 			new VOID_StrValue(
 				"Full burn time to be half done at node",
@@ -982,6 +879,108 @@
 
 					return string.Format(format, VOID_Tools.ConvertInterval(interval));
 				}
+			);
+
+		public static readonly VOID_DoubleValue currManeuverDeltaV =
+			new VOID_DoubleValue(
+				"Current Maneuver Delta-V",
+				delegate()
+				{
+					if (upcomingManeuverNodes > 0)
+					{
+						return core.vessel.patchedConicSolver.maneuverNodes[0].DeltaV.magnitude;
+					}
+					else
+					{
+						return double.NaN;
+					}
+				},
+				"m/s"
+			);
+
+		public static readonly VOID_DoubleValue currManeuverDVRemaining =
+			new VOID_DoubleValue(
+				"Remaining Maneuver Delta-V",
+				delegate()
+				{
+					if (upcomingManeuverNodes > 0)
+					{
+						return core.vessel.patchedConicSolver.maneuverNodes[0].GetBurnVector(core.vessel.orbit).magnitude;
+					}
+					else
+					{
+						return double.NaN;
+					}
+				},
+				"m/s"
+			);
+
+		public static readonly VOID_DoubleValue currentNodeBurnDuration =
+			new VOID_DoubleValue(
+				"Total Burn Time",
+				delegate()
+				{
+					if (core.LastStage == null || currManeuverDeltaV.Value == double.NaN)
+					{
+						return double.NaN;
+					}
+
+					double stageThrust = stageNominalThrust;
+
+					return burnTime(currManeuverDeltaV.Value, totalMass, stageMassFlow, stageThrust);
+				},
+				"s"
+			);
+
+		public static readonly VOID_DoubleValue currentNodeBurnRemaining =
+			new VOID_DoubleValue(
+				"Burn Time Remaining",
+				delegate()
+				{
+					if (core.LastStage == null || currManeuverDVRemaining == double.NaN)
+					{
+						return double.NaN;
+					}
+
+					double stageThrust = stageNominalThrust;
+
+					return burnTime(currManeuverDVRemaining, totalMass, stageMassFlow, stageThrust);
+				},
+				"s"
+			);
+
+		public static readonly VOID_DoubleValue currentNodeHalfBurnDuration =
+			new VOID_DoubleValue(
+				"Half Burn Time",
+				delegate()
+				{
+					if (core.LastStage == null || currManeuverDeltaV.Value == double.NaN)
+					{
+						return double.NaN;
+					}
+
+					double stageThrust = stageNominalThrust;
+
+					return burnTime(currManeuverDeltaV.Value / 2d, totalMass, stageMassFlow, stageThrust);
+				},
+				"s"
+			);
+
+		public static readonly VOID_DoubleValue nextManeuverDeltaV =
+			new VOID_DoubleValue(
+				"Current Maneuver Delta-V",
+				delegate()
+				{
+					if (upcomingManeuverNodes > 1)
+					{
+						return core.vessel.patchedConicSolver.maneuverNodes[1].DeltaV.magnitude;
+					}
+					else
+					{
+						return double.NaN;
+					}
+				},
+				"m/s"
 			);
 
 		#endregion

--- a/VOID_HUD.cs
+++ b/VOID_HUD.cs
@@ -118,7 +118,7 @@
 
 			leftHUD = new StringBuilder();
 
-			this.core.LabelStyles["hud"].alignment = TextAnchor.UpperRight;
+			VOID_Styles.labelHud.alignment = TextAnchor.UpperRight;
 
 			if (this.core.powerAvailable)
 			{
@@ -145,11 +145,11 @@
 			}
 			else
 			{
-				this.core.LabelStyles["hud"].normal.textColor = Color.red;
+				VOID_Styles.labelHud.normal.textColor = Color.red;
 				leftHUD.Append(string.Intern("-- POWER LOST --"));
 			}
 
-			GUILayout.Label(leftHUD.ToString(), this.core.LabelStyles["hud"], GUILayout.ExpandWidth(true));
+			GUILayout.Label(leftHUD.ToString(), VOID_Styles.labelHud, GUILayout.ExpandWidth(true));
 
 			if (!this.positionsLocked)
 			{
@@ -165,7 +165,7 @@
 
 			rightHUD = new StringBuilder();
 
-			this.core.LabelStyles["hud"].alignment = TextAnchor.UpperLeft;
+			VOID_Styles.labelHud.alignment = TextAnchor.UpperLeft;
 
 			if (this.core.powerAvailable)
 			{
@@ -191,7 +191,7 @@
 				);
 
 				if (
-					this.core.vessel.mainBody == this.core.Kerbin &&
+					this.core.vessel.mainBody == this.core.HomeBody &&
 					(
 						this.core.vessel.situation == Vessel.Situations.FLYING ||
 						this.core.vessel.situation == Vessel.Situations.SUB_ORBITAL ||
@@ -205,12 +205,12 @@
 			}
 			else
 			{
-				this.core.LabelStyles["hud"].normal.textColor = Color.red;
+				VOID_Styles.labelHud.normal.textColor = Color.red;
 				rightHUD.Append(string.Intern("-- POWER LOST --"));
 			}
 
 
-			GUILayout.Label(rightHUD.ToString(), this.core.LabelStyles["hud"], GUILayout.ExpandWidth(true));
+			GUILayout.Label(rightHUD.ToString(), VOID_Styles.labelHud, GUILayout.ExpandWidth(true));
 
 			if (!this.positionsLocked)
 			{
@@ -222,12 +222,7 @@
 
 		public override void DrawGUI()
 		{
-			if (!this.core.LabelStyles.ContainsKey("hud"))
-			{
-				this.core.LabelStyles["hud"] = new GUIStyle(GUI.skin.label);
-			}
-
-			this.core.LabelStyles["hud"].normal.textColor = textColors [ColorIndex];
+			VOID_Styles.labelHud.normal.textColor = textColors [ColorIndex];
 
 			GUI.skin = this.core.Skin;
 

--- a/VOID_HUDAdvanced.cs
+++ b/VOID_HUDAdvanced.cs
@@ -105,7 +105,7 @@
 
 			leftHUD = new StringBuilder();
 
-			this.core.LabelStyles["hud"].alignment = TextAnchor.UpperRight;
+			VOID_Styles.labelHud.alignment = TextAnchor.UpperRight;
 
 			if (this.core.powerAvailable)
 			{
@@ -144,11 +144,11 @@
 			}
 			else
 			{
-				this.core.LabelStyles["hud"].normal.textColor = Color.red;
+				VOID_Styles.labelHud.normal.textColor = Color.red;
 				leftHUD.Append(string.Intern("-- POWER LOST --"));
 			}
 
-			GUILayout.Label(leftHUD.ToString(), this.core.LabelStyles["hud"], GUILayout.ExpandWidth(true));
+			GUILayout.Label(leftHUD.ToString(), VOID_Styles.labelHud, GUILayout.ExpandWidth(true));
 
 			if (!this.positionsLocked)
 			{
@@ -164,7 +164,7 @@
 
 			rightHUD = new StringBuilder();
 
-			this.core.LabelStyles["hud"].alignment = TextAnchor.UpperLeft;
+			VOID_Styles.labelHud.alignment = TextAnchor.UpperLeft;
 
 			if (this.core.powerAvailable)
 			{
@@ -203,11 +203,11 @@
 			}
 			else
 			{
-				this.core.LabelStyles["hud"].normal.textColor = Color.red;
+				VOID_Styles.labelHud.normal.textColor = Color.red;
 				rightHUD.Append(string.Intern("-- POWER LOST --"));
 			}
 
-			GUILayout.Label(rightHUD.ToString(), this.core.LabelStyles["hud"], GUILayout.ExpandWidth(true));
+			GUILayout.Label(rightHUD.ToString(), VOID_Styles.labelHud, GUILayout.ExpandWidth(true));
 
 			if (!this.positionsLocked)
 			{

--- a/VOID_StageInfo.cs
+++ b/VOID_StageInfo.cs
@@ -20,6 +20,7 @@
 		private Table.Column<int> stageNumberCol;
 		private Table.Column<double> stageDeltaVCol;
 		private Table.Column<double> stageTotalDVCol;
+		private Table.Column<double> stageInvertDVCol;
 		private Table.Column<double> stageMassCol;
 		private Table.Column<double> stageTotalMassCol;
 		private Table.Column<double> stageThrustCol;
@@ -51,27 +52,31 @@
 			this.stageNumberCol = new Table.Column<int>("Stage", 40f);
 			this.stageTable.Add(this.stageNumberCol);
 
-			this.stageDeltaVCol = new Table.Column<double>("DeltaV [m/s]", 80f);
+			this.stageDeltaVCol = new Table.Column<double>("DeltaV [m/s]", 60f);
 			this.stageDeltaVCol.Format = "S2";
 			this.stageTable.Add(this.stageDeltaVCol);
 
-			this.stageTotalDVCol = new Table.Column<double>("Total ΔV [m/s]", 80f);
+			this.stageTotalDVCol = new Table.Column<double>("Total ΔV [m/s]", 60f);
 			this.stageTotalDVCol.Format = "S2";
 			this.stageTable.Add(this.stageTotalDVCol);
 
-			this.stageMassCol = new Table.Column<double>("Mass [Mg]", 80f);
+			this.stageInvertDVCol = new Table.Column<double>("Invert ΔV [m/s]", 60f);
+			this.stageInvertDVCol.Format = "S2";
+			this.stageTable.Add(this.stageInvertDVCol);
+
+			this.stageMassCol = new Table.Column<double>("Mass [Mg]", 60f);
 			this.stageMassCol.Format = "#.#";
 			this.stageTable.Add(this.stageMassCol);
 
-			this.stageTotalMassCol = new Table.Column<double>("Total Mass [Mg]", 80f);
+			this.stageTotalMassCol = new Table.Column<double>("Total [Mg]", 60f);
 			this.stageTotalMassCol.Format = "#.#";
 			this.stageTable.Add(this.stageTotalMassCol);
 
-			this.stageThrustCol = new Table.Column<double>("Thrust [N]", 80f);
+			this.stageThrustCol = new Table.Column<double>("Thrust [N]", 60f);
 			this.stageThrustCol.Format = "S2";
 			this.stageTable.Add(this.stageThrustCol);
 
-			this.stageTWRCol = new Table.Column<double>("T/W Ratio", 80f);
+			this.stageTWRCol = new Table.Column<double>("T/W Ratio", 60f);
 			this.stageTWRCol.Format = "#.#";
 			this.stageTable.Add(this.stageTWRCol);
 		}
@@ -127,12 +132,13 @@
 
 				this.stageDeltaVCol.Add(stage.deltaV);
 				this.stageTotalDVCol.Add(stage.totalDeltaV);
+				this.stageInvertDVCol.Add(stage.inverseTotalDeltaV);
 
 				this.stageMassCol.Add(stage.mass);
 				this.stageTotalMassCol.Add(stage.totalMass);      
 
 				this.stageThrustCol.Add(stage.thrust * 1000f);
-				this.stageTWRCol.Add(stage.thrustToWeight / (this.selectedBody ?? core.Kerbin).GeeASL);
+				this.stageTWRCol.Add(stage.thrustToWeight / (this.selectedBody ?? core.HomeBody).GeeASL);
 			}
 
 			this.stageTable.Render();
@@ -146,7 +152,7 @@
 					this.bodyIdx--;
 				}
 
-				this.showBodyList = GUILayout.Toggle(this.showBodyList, (this.selectedBody ?? core.Kerbin).bodyName, GUI.skin.button);
+				this.showBodyList = GUILayout.Toggle(this.showBodyList, (this.selectedBody ?? core.HomeBody).bodyName, GUI.skin.button);
 				Rect bodyButtonPos = GUILayoutUtility.GetLastRect();
 
 				if (Event.current.type == EventType.Repaint)

--- a/VOID_Styles.cs
+++ b/VOID_Styles.cs
@@ -28,14 +28,6 @@
 
 using System;
 using UnityEngine;
-
-#if COMMENT
-this.LabelStyles["link"] = new GUIStyle(GUI.skin.label);
-this.LabelStyles["center"] = new GUIStyle(GUI.skin.label);
-this.LabelStyles["center_bold"] = new GUIStyle(GUI.skin.label);
-this.LabelStyles["right"] = new GUIStyle(GUI.skin.label);
-labelRed = new GUIStyle(GUI.skin.label);
-#endif
 
 namespace VOID
 {
@@ -71,6 +63,12 @@
 			private set;
 		}
 
+		public static GUIStyle labelHud
+		{
+			get;
+			private set;
+		}
+
 		public static GUIStyle labelRight
 		{
 			get;
@@ -100,6 +98,8 @@
 			labelCenterBold.alignment = TextAnchor.UpperCenter;
 			labelCenterBold.fontStyle = FontStyle.Bold;
 
+			labelHud = new GUIStyle(labelDefault);
+
 			labelRight = new GUIStyle(GUI.skin.label);
 			labelRight.normal.textColor = Color.white;
 			labelRight.alignment = TextAnchor.UpperRight;