Generally compatible with TT refactor. master
Generally compatible with TT refactor.

--- a/ModuleKerbalMassTracker.cs
+++ b/ModuleKerbalMassTracker.cs
@@ -26,7 +26,7 @@
 
 		public override void OnAwake()
 		{
-			Tools.PostDebugMessage(this, "Waking up...");
+			Logging.PostDebugMessage(this, "Waking up...");
 
 			this.firstRun = true;
 
@@ -37,7 +37,7 @@
 				this.kerbalMassInfo = PartResourceLibrary.Instance.GetDefinition(KERBAL_RESOURCE_NAME);
 			}
 
-			Tools.PostDebugMessage(
+			Logging.PostDebugMessage(
 				this,
 				"Fetched resource definition for {0}: {1}",
 				KERBAL_RESOURCE_NAME,
@@ -45,7 +45,7 @@
 
 			if (base.part.CrewCapacity == 0)
 			{
-				Tools.PostDebugMessage(
+				Logging.PostDebugMessage(
 					this,
 					"Aborting, part has 0 CrewCapacity.  Checking if {0} in Resources",
 					KERBAL_RESOURCE_NAME);
@@ -55,15 +55,15 @@
 
 			bool hasResource = (base.part.Resources != null && base.part.Resources.Contains(KERBAL_RESOURCE_NAME));
 
-			Tools.PostDebugMessage(this, "hasResource: {0}", hasResource);
+			Logging.PostDebugMessage(this, "hasResource: {0}", hasResource);
 
 			if (!hasResource)
 			{
-				Tools.PostDebugMessage(this, "resource not found, checking components manually just to be sure.");
+				Logging.PostDebugMessage(this, "resource not found, checking components manually just to be sure.");
 
 				foreach (PartResource resourceComponent in base.part.GetComponents<PartResource>())
 				{
-					Tools.PostDebugMessage(this, "Checking {0}", resourceComponent.resourceName);
+					Logging.PostDebugMessage(this, "Checking {0}", resourceComponent.resourceName);
 
 					if (resourceComponent.resourceName == KERBAL_RESOURCE_NAME)
 					{
@@ -73,11 +73,11 @@
 				}
 			}
 
-			Tools.PostDebugMessage(this, "hasResource: {0}", hasResource);
+			Logging.PostDebugMessage(this, "hasResource: {0}", hasResource);
 
 			if (!hasResource && this.kerbalMassInfo != null)
 			{
-				Tools.PostDebugMessage(this, "Adding resource to part");
+				Logging.PostDebugMessage(this, "Adding resource to part");
 
 				PartResource resource = base.part.gameObject.AddComponent<PartResource>();
 				resource.SetInfo(this.kerbalMassInfo);
@@ -97,21 +97,21 @@
 
 			#if DEBUG
 
-			Tools.PostDebugMessage(this, "Resource {0}added.", hasResource ? "" : "not ");
+			Logging.PostDebugMessage(this, "Resource {0}added.", hasResource ? "" : "not ");
 			#endif
 
 			GameEvents.onCrewOnEva.Add(this.handleCrewOnEva);
 			GameEvents.onCrewBoardVessel.Add(this.handleCrewBoardVessel);
 			GameEvents.onCrewTransferred.Add(this.handleCrewTransferred);
 
-			Tools.PostDebugMessage(this, "Awake.");
+			Logging.PostDebugMessage(this, "Awake.");
 		}
 
 		public void FixedUpdate()
 		{
 			if (this.firstRun)
 			{
-				Tools.PostDebugMessage(this, "First FixedUpdate.");
+				Logging.PostDebugMessage(this, "First FixedUpdate.");
 
 				this.resetKerbalMass();
 
@@ -125,7 +125,7 @@
 			GameEvents.onCrewBoardVessel.Remove(this.handleCrewBoardVessel);
 			GameEvents.onCrewTransferred.Remove(this.handleCrewTransferred);
 
-			Tools.PostDebugMessage(this, "Destroyed.");
+			Logging.PostDebugMessage(this, "Destroyed.");
 		}
 
 		private void resetKerbalMass()
@@ -146,21 +146,21 @@
 
 		private void handleCrewOnEva(GameEvents.FromToAction<Part, Part> data)
 		{
-			Tools.PostDebugMessage(this, "Handling onCrewOnEva");
+			Logging.PostDebugMessage(this, "Handling onCrewOnEva");
 
 			this.resetKerbalMass();
 		}
 
 		private void handleCrewBoardVessel(GameEvents.FromToAction<Part, Part> data)
 		{
-			Tools.PostDebugMessage(this, "Handling onCrewOnEva");
+			Logging.PostDebugMessage(this, "Handling onCrewOnEva");
 
 			this.resetKerbalMass();
 		}
 
 		private void handleCrewTransferred(GameEvents.HostedFromToAction<ProtoCrewMember, Part> data)
 		{
-			Tools.PostDebugMessage(this, "Handling onCrewOnEva");
+			Logging.PostDebugMessage(this, "Handling onCrewOnEva");
 
 			this.resetKerbalMass();
 		}

--- a/NSSAltitudeRecordFixer.cs
+++ b/NSSAltitudeRecordFixer.cs
@@ -10,7 +10,7 @@
 using KSPAchievements;
 using System;
 using System.Reflection;
-using ToadicusTools;
+using ToadicusTools.Extensions;
 using UnityEngine;
 
 namespace NSScientific

--- a/NSSCelestialBodyFixer.cs
+++ b/NSSCelestialBodyFixer.cs
@@ -9,7 +9,7 @@
 using KSP;
 using System;
 using System.Collections.Generic;
-using ToadicusTools;
+using ToadicusTools.Extensions;
 using UnityEngine;
 
 [KSPAddon(KSPAddon.Startup.MainMenu, true)]

--- a/NSSContractPicker.cs
+++ b/NSSContractPicker.cs
@@ -10,7 +10,7 @@
 using KSP;
 using System;
 using System.Collections.Generic;
-using ToadicusTools;
+using ToadicusTools.Wrappers;
 using UnityEngine;
 
 namespace NSScientific

--- a/NSSKerbinExplorer.cs
+++ b/NSSKerbinExplorer.cs
@@ -31,7 +31,7 @@
 			if (this.isValidSave)
 			{
 				GameEvents.OnPartPurchased.Add(this.OnPartPurchasedEvent);
-				Tools.PostDebugMessage(this, "Added OnPartPurchased event handler.");
+				Logging.PostDebugMessage(this, "Added OnPartPurchased event handler.");
 			}
 		}
 
@@ -55,20 +55,20 @@
 			if (this.isValidSave)
 			{
 				GameEvents.OnPartPurchased.Remove(this.OnPartPurchasedEvent);
-				Tools.PostDebugMessage(this, "Removed OnPartPurchased event handler.");
+				Logging.PostDebugMessage(this, "Removed OnPartPurchased event handler.");
 			}
 		}
 
 		private void OnPartPurchasedEvent(AvailablePart part)
 		{
-			Tools.PostDebugMessage(this, "Purchased part {0}: checking {1} modules.",
+			Logging.PostDebugMessage(this, "Purchased part {0}: checking {1} modules.",
 				part.title, part.partPrefab.Modules.Count);
 
 			foreach (PartModule module in part.partPrefab.Modules)
 			{
 				if (module is ModuleScienceExperiment)
 				{
-					Tools.PostDebugMessage(this, "Module {0} is ModuleScienceExperiment.", module.moduleName);
+					Logging.PostDebugMessage(this, "Module {0} is ModuleScienceExperiment.", module.moduleName);
 
 					ModuleScienceExperiment expModule = module as ModuleScienceExperiment;
 
@@ -78,7 +78,7 @@
 						experiment.BiomeIsRelevantWhile(
 							ExperimentSituations.SrfLanded | ExperimentSituations.SrfSplashed))
 					{
-						Tools.PostDebugMessage(
+						Logging.PostDebugMessage(
 							this,
 							"Module {0} is per-biome on the surface, checking {1} biomes.",
 							module.moduleName,
@@ -100,7 +100,7 @@
 					}
 					else
 					{
-						Tools.PostDebugMessage(this, "Module {0} is not per-biome on the surface.", module.moduleName);
+						Logging.PostDebugMessage(this, "Module {0} is not per-biome on the surface.", module.moduleName);
 
 						this.StudyBiome(string.Empty, ExperimentSituations.SrfLanded, experiment);
 						this.StudyBiome(string.Empty, ExperimentSituations.SrfSplashed, experiment);
@@ -111,7 +111,7 @@
 
 		private void StudyBiome(string biomeName, ExperimentSituations situation, ScienceExperiment experiment)
 		{
-			Tools.PostDebugMessage(
+			Logging.PostDebugMessage(
 				this,
 				"Experiment {0} with situationMask {1} and biomeMask {2}" +
 				"\n(scienceCap: {3}; baseValue: {4}; dataScale: {5})",
@@ -125,7 +125,7 @@
 
 			if (experiment.IsAvailableWhile(situation, Planetarium.fetch.Home))
 			{
-				Tools.PostDebugMessage(
+				Logging.PostDebugMessage(
 					this,
 					"Experiment {0} is available when {1} at {2}.",
 					experiment.id,
@@ -142,7 +142,7 @@
 					                         biomeName
 				                         );
 
-				Tools.PostDebugMessage(
+				Logging.PostDebugMessage(
 					this,
 					"Got subject {0} with science={1} and scienceCap={2}",
 					subject.id,
@@ -152,7 +152,7 @@
 
 				if (subject.scienceCap != subject.science)
 				{
-					Tools.PostDebugMessage(
+					Logging.PostDebugMessage(
 						this,
 						"Submitting {0} data for experiment {1}." +
 						"\n(scienceCap: {2}; subjectValue: {3}; science: {4})",
@@ -173,7 +173,7 @@
 			#if DEBUG
 			else
 			{
-				Tools.PostDebugMessage(
+				Logging.PostDebugMessage(
 					this,
 					"Experiment {0} is not available when {1} at {2}.",
 					experiment.id,

--- a/NSScientific.csproj
+++ b/NSScientific.csproj
@@ -81,18 +81,9 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="NSSCelestialBodyFixer.cs" />
-    <Compile Include="..\ToadicusTools\ConfigNodeExtensions.cs">
-      <Link>ConfigNodeExtensions.cs</Link>
-    </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="NSSContractPicker.cs" />
-    <Compile Include="..\ToadicusTools\Wrapper\ToolbarWrapper.cs">
-      <Link>ToolbarWrapper.cs</Link>
-    </Compile>
     <Compile Include="NSSKerbinExplorer.cs" />
-    <Compile Include="..\ToadicusTools\Tools.cs">
-      <Link>Tools.cs</Link>
-    </Compile>
     <Compile Include="ModuleKerbalMassTracker.cs" />
     <Compile Include="NSSAltitudeRecordFixer.cs" />
     <Compile Include="UpgradeableFacilityConfigurator.cs" />
@@ -118,4 +109,10 @@
   <ItemGroup>
     <Folder Include="GameData\NidaSampi\Scientific\Upgradeables\" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\ToadicusTools\ToadicusTools.csproj">
+      <Project>{D48A5542-6655-4149-BC27-B27DF0466F1C}</Project>
+      <Name>ToadicusTools</Name>
+    </ProjectReference>
+  </ItemGroup>
 </Project>

--- a/UpgradeableFacilityConfigurator.cs
+++ b/UpgradeableFacilityConfigurator.cs
@@ -6,11 +6,13 @@
 // This work is released into the Public Domain.
 //
 
+// TODO: Remove ToadicusTools. prefixes after refactor is done.
+
 using KSP;
 using System;
 using System.Collections.Generic;
 using System.Reflection;
-using ToadicusTools;
+using ToadicusTools.Extensions;
 using UnityEngine;
 using Upgradeables;
 
@@ -242,7 +244,7 @@
 
 				this.FacilityMultiplier = node.GetValue(COST_MULTIPLIER, 1f);
 
-				Tools.PostDebugMessage(this.ToString());
+				ToadicusTools.Logging.PostDebugMessage(this.ToString());
 
 				foreach (ConfigNode levelNode in node.GetNodes(FACILITY_LEVEL))
 				{
@@ -305,7 +307,7 @@
 
 				if (this.LevelIdx == -1)
 				{
-					Tools.PostErrorMessage("[UpgradeableFacilityConfigurator]" +
+					ToadicusTools.Logging.PostErrorMessage("[UpgradeableFacilityConfigurator]" +
 						"LEVEL_IDX not set correctly for level of Facility {0}.  Level will be ignored.\n{1}",
 						this.facilityDef.FacilityId,
 						this.ToString()
@@ -314,14 +316,14 @@
 
 				if (this.LevelMultiplier != 1f && !float.IsNaN(this.LevelCost))
 				{
-					Tools.PostErrorMessage("[UpgradeableFacilityConfigurator]" +
+					ToadicusTools.Logging.PostErrorMessage("[UpgradeableFacilityConfigurator]" +
 						"Multiplier and cost both set for Facility {1} Level {2}: ignoring multiplier definition.",
 						this.facilityDef.FacilityId,
 						this.LevelIdx
 					);
 				}
 
-				Tools.PostDebugMessage(this.ToString());
+				ToadicusTools.Logging.PostDebugMessage(this.ToString());
 			}
 
 			public override string ToString()