diff --git a/src/Playground/Playground.csproj b/src/Playground/Playground.csproj
index 9e8a343..993660f 100644
--- a/src/Playground/Playground.csproj
+++ b/src/Playground/Playground.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/src/Ultz.Bcl.sln b/src/Ultz.Bcl.sln
index a29511a..2378c92 100644
--- a/src/Ultz.Bcl.sln
+++ b/src/Ultz.Bcl.sln
@@ -3,17 +3,17 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26124.0
MinimumVisualStudioVersion = 15.0.26124.0
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Bcl.Half", "Ultz.Bcl.Half\Ultz.Bcl.Half.csproj", "{5A0440B5-A2FB-4317-86DF-EFE3A4513105}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Bcl.Half", "libraries\Ultz.Bcl.Half\Ultz.Bcl.Half.csproj", "{5A0440B5-A2FB-4317-86DF-EFE3A4513105}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Bcl.Half.Fallback", "Ultz.Bcl.Half.Fallback\Ultz.Bcl.Half.Fallback.csproj", "{D1BD5808-93F6-482C-BD3C-B54480A3FA6F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Bcl.Half.Fallback", "libraries\Ultz.Bcl.Half.Fallback\Ultz.Bcl.Half.Fallback.csproj", "{D1BD5808-93F6-482C-BD3C-B54480A3FA6F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Extensions.PrivacyEnhancedMail", "Ultz.Extensions.PrivacyEnhancedMail\Ultz.Extensions.PrivacyEnhancedMail.csproj", "{E2EA2D5F-BF2E-416E-9A18-E8560F01D43E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Extensions.PrivacyEnhancedMail", "libraries\Ultz.Extensions.PrivacyEnhancedMail\Ultz.Extensions.PrivacyEnhancedMail.csproj", "{E2EA2D5F-BF2E-416E-9A18-E8560F01D43E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Extensions.Logging", "Ultz.Extensions.Logging\Ultz.Extensions.Logging.csproj", "{47E1B959-365D-4D51-8476-EE5806A8AB13}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Extensions.Logging", "libraries\Ultz.Extensions.Logging\Ultz.Extensions.Logging.csproj", "{47E1B959-365D-4D51-8476-EE5806A8AB13}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Extensions.Commands", "Ultz.Extensions.Commands\Ultz.Extensions.Commands.csproj", "{B7157863-8A33-4D2F-B210-68E706DDF324}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Extensions.Commands", "libraries\Ultz.Extensions.Commands\Ultz.Extensions.Commands.csproj", "{B7157863-8A33-4D2F-B210-68E706DDF324}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Extensions.Events", "Ultz.Extensions.Events\Ultz.Extensions.Events.csproj", "{678EE11D-C01D-429B-ACEA-7F0F1BFDE1CC}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ultz.Extensions.Events", "libraries\Ultz.Extensions.Events\Ultz.Extensions.Events.csproj", "{678EE11D-C01D-429B-ACEA-7F0F1BFDE1CC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Playground", "Playground\Playground.csproj", "{57D7673C-74FD-432A-821D-17B7AABADB6D}"
EndProject
diff --git a/src/libraries/Directory.Build.props b/src/libraries/Directory.Build.props
new file mode 100644
index 0000000..0aa05e7
--- /dev/null
+++ b/src/libraries/Directory.Build.props
@@ -0,0 +1,7 @@
+
+
+
+ true
+ key.snk
+
+
\ No newline at end of file
diff --git a/src/Ultz.Bcl.Half.Fallback/Half.cs b/src/libraries/Ultz.Bcl.Half.Fallback/Half.cs
similarity index 100%
rename from src/Ultz.Bcl.Half.Fallback/Half.cs
rename to src/libraries/Ultz.Bcl.Half.Fallback/Half.cs
diff --git a/src/Ultz.Bcl.Half.Fallback/README.md b/src/libraries/Ultz.Bcl.Half.Fallback/README.md
similarity index 100%
rename from src/Ultz.Bcl.Half.Fallback/README.md
rename to src/libraries/Ultz.Bcl.Half.Fallback/README.md
diff --git a/src/Ultz.Bcl.Half.Fallback/Ultz.Bcl.Half.Fallback.csproj b/src/libraries/Ultz.Bcl.Half.Fallback/Ultz.Bcl.Half.Fallback.csproj
similarity index 100%
rename from src/Ultz.Bcl.Half.Fallback/Ultz.Bcl.Half.Fallback.csproj
rename to src/libraries/Ultz.Bcl.Half.Fallback/Ultz.Bcl.Half.Fallback.csproj
diff --git a/src/libraries/Ultz.Bcl.Half.Fallback/key.snk b/src/libraries/Ultz.Bcl.Half.Fallback/key.snk
new file mode 100644
index 0000000..a6e5de9
Binary files /dev/null and b/src/libraries/Ultz.Bcl.Half.Fallback/key.snk differ
diff --git a/src/Ultz.Bcl.Half/README.md b/src/libraries/Ultz.Bcl.Half/README.md
similarity index 100%
rename from src/Ultz.Bcl.Half/README.md
rename to src/libraries/Ultz.Bcl.Half/README.md
diff --git a/src/Ultz.Bcl.Half/Ultz.Bcl.Half.csproj b/src/libraries/Ultz.Bcl.Half/Ultz.Bcl.Half.csproj
similarity index 100%
rename from src/Ultz.Bcl.Half/Ultz.Bcl.Half.csproj
rename to src/libraries/Ultz.Bcl.Half/Ultz.Bcl.Half.csproj
diff --git a/src/libraries/Ultz.Bcl.Half/key.snk b/src/libraries/Ultz.Bcl.Half/key.snk
new file mode 100644
index 0000000..ae0fb0d
Binary files /dev/null and b/src/libraries/Ultz.Bcl.Half/key.snk differ
diff --git a/src/Ultz.Bcl.Half/pkginfo.props b/src/libraries/Ultz.Bcl.Half/pkginfo.props
similarity index 100%
rename from src/Ultz.Bcl.Half/pkginfo.props
rename to src/libraries/Ultz.Bcl.Half/pkginfo.props
diff --git a/src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/MaximumCheckAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/MaximumCheckAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/MaximumCheckAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/MaximumCheckAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/MinimumCheckAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/MinimumCheckAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/MinimumCheckAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/MinimumCheckAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/RangeCheckAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/RangeCheckAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/RangeCheckAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/RangeCheckAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/ContainsCheckAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/ContainsCheckAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/ContainsCheckAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/ContainsCheckAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/EndsWithCheckAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/EndsWithCheckAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/EndsWithCheckAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/EndsWithCheckAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/RegexCheckAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/RegexCheckAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/RegexCheckAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/RegexCheckAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/StartsWithCheckAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/StartsWithCheckAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/StartsWithCheckAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Checks/Bundled/String/StartsWithCheckAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Checks/CheckAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Checks/CheckAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Checks/CheckAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Checks/CheckAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Checks/ParameterCheckAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Checks/ParameterCheckAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Checks/ParameterCheckAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Checks/ParameterCheckAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Commands/CommandAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Commands/CommandAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Commands/CommandAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Commands/CommandAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Commands/Cooldown/CooldownAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Commands/Cooldown/CooldownAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Commands/Cooldown/CooldownAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Commands/Cooldown/CooldownAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Commands/Cooldown/CooldownMeasure.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Commands/Cooldown/CooldownMeasure.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Commands/Cooldown/CooldownMeasure.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Commands/Cooldown/CooldownMeasure.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Commands/PriorityAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Commands/PriorityAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Commands/PriorityAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Commands/PriorityAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/DescriptionAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/DescriptionAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/DescriptionAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/DescriptionAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/DisabledAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/DisabledAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/DisabledAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/DisabledAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/IgnoresExtraArgumentsAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/IgnoresExtraArgumentsAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/IgnoresExtraArgumentsAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/IgnoresExtraArgumentsAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Modules/DoNotAddAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Modules/DoNotAddAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Modules/DoNotAddAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Modules/DoNotAddAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Modules/DoNotInjectAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Modules/DoNotInjectAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Modules/DoNotInjectAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Modules/DoNotInjectAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Modules/GroupAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Modules/GroupAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Modules/GroupAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Modules/GroupAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/NameAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/NameAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/NameAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/NameAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/OverrideArgumentParserAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/OverrideArgumentParserAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/OverrideArgumentParserAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/OverrideArgumentParserAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Parameters/OverrideTypeParserAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Parameters/OverrideTypeParserAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Parameters/OverrideTypeParserAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Parameters/OverrideTypeParserAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/Parameters/RemainderAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/Parameters/RemainderAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/Parameters/RemainderAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/Parameters/RemainderAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/RemarksAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/RemarksAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/RemarksAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/RemarksAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Attributes/RunModeAttribute.cs b/src/libraries/Ultz.Extensions.Commands/Attributes/RunModeAttribute.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Attributes/RunModeAttribute.cs
rename to src/libraries/Ultz.Extensions.Commands/Attributes/RunModeAttribute.cs
diff --git a/src/Ultz.Extensions.Commands/Builders/CommandBuilder.cs b/src/libraries/Ultz.Extensions.Commands/Builders/CommandBuilder.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Builders/CommandBuilder.cs
rename to src/libraries/Ultz.Extensions.Commands/Builders/CommandBuilder.cs
diff --git a/src/Ultz.Extensions.Commands/Builders/CommandBuildingException.cs b/src/libraries/Ultz.Extensions.Commands/Builders/CommandBuildingException.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Builders/CommandBuildingException.cs
rename to src/libraries/Ultz.Extensions.Commands/Builders/CommandBuildingException.cs
diff --git a/src/Ultz.Extensions.Commands/Builders/ModuleBuilder.cs b/src/libraries/Ultz.Extensions.Commands/Builders/ModuleBuilder.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Builders/ModuleBuilder.cs
rename to src/libraries/Ultz.Extensions.Commands/Builders/ModuleBuilder.cs
diff --git a/src/Ultz.Extensions.Commands/Builders/ModuleBuildingException.cs b/src/libraries/Ultz.Extensions.Commands/Builders/ModuleBuildingException.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Builders/ModuleBuildingException.cs
rename to src/libraries/Ultz.Extensions.Commands/Builders/ModuleBuildingException.cs
diff --git a/src/Ultz.Extensions.Commands/Builders/ParameterBuilder.cs b/src/libraries/Ultz.Extensions.Commands/Builders/ParameterBuilder.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Builders/ParameterBuilder.cs
rename to src/libraries/Ultz.Extensions.Commands/Builders/ParameterBuilder.cs
diff --git a/src/Ultz.Extensions.Commands/Builders/ParameterBuildingException.cs b/src/libraries/Ultz.Extensions.Commands/Builders/ParameterBuildingException.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Builders/ParameterBuildingException.cs
rename to src/libraries/Ultz.Extensions.Commands/Builders/ParameterBuildingException.cs
diff --git a/src/Ultz.Extensions.Commands/Built/Command.cs b/src/libraries/Ultz.Extensions.Commands/Built/Command.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Built/Command.cs
rename to src/libraries/Ultz.Extensions.Commands/Built/Command.cs
diff --git a/src/Ultz.Extensions.Commands/Built/Module.cs b/src/libraries/Ultz.Extensions.Commands/Built/Module.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Built/Module.cs
rename to src/libraries/Ultz.Extensions.Commands/Built/Module.cs
diff --git a/src/Ultz.Extensions.Commands/Built/Parameter.cs b/src/libraries/Ultz.Extensions.Commands/Built/Parameter.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Built/Parameter.cs
rename to src/libraries/Ultz.Extensions.Commands/Built/Parameter.cs
diff --git a/src/Ultz.Extensions.Commands/CommandService.cs b/src/libraries/Ultz.Extensions.Commands/CommandService.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/CommandService.cs
rename to src/libraries/Ultz.Extensions.Commands/CommandService.cs
diff --git a/src/Ultz.Extensions.Commands/CommandServiceConfiguration.cs b/src/libraries/Ultz.Extensions.Commands/CommandServiceConfiguration.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/CommandServiceConfiguration.cs
rename to src/libraries/Ultz.Extensions.Commands/CommandServiceConfiguration.cs
diff --git a/src/Ultz.Extensions.Commands/CommandUtilities.cs b/src/libraries/Ultz.Extensions.Commands/CommandUtilities.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/CommandUtilities.cs
rename to src/libraries/Ultz.Extensions.Commands/CommandUtilities.cs
diff --git a/src/Ultz.Extensions.Commands/Context/CommandContext.cs b/src/libraries/Ultz.Extensions.Commands/Context/CommandContext.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Context/CommandContext.cs
rename to src/libraries/Ultz.Extensions.Commands/Context/CommandContext.cs
diff --git a/src/Ultz.Extensions.Commands/Cooldown/Cooldown.cs b/src/libraries/Ultz.Extensions.Commands/Cooldown/Cooldown.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Cooldown/Cooldown.cs
rename to src/libraries/Ultz.Extensions.Commands/Cooldown/Cooldown.cs
diff --git a/src/Ultz.Extensions.Commands/Cooldown/CooldownBucket.cs b/src/libraries/Ultz.Extensions.Commands/Cooldown/CooldownBucket.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Cooldown/CooldownBucket.cs
rename to src/libraries/Ultz.Extensions.Commands/Cooldown/CooldownBucket.cs
diff --git a/src/Ultz.Extensions.Commands/Cooldown/CooldownMap.cs b/src/libraries/Ultz.Extensions.Commands/Cooldown/CooldownMap.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Cooldown/CooldownMap.cs
rename to src/libraries/Ultz.Extensions.Commands/Cooldown/CooldownMap.cs
diff --git a/src/Ultz.Extensions.Commands/Delegates.cs b/src/libraries/Ultz.Extensions.Commands/Delegates.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Delegates.cs
rename to src/libraries/Ultz.Extensions.Commands/Delegates.cs
diff --git a/src/Ultz.Extensions.Commands/DummyServiceProvider.cs b/src/libraries/Ultz.Extensions.Commands/DummyServiceProvider.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/DummyServiceProvider.cs
rename to src/libraries/Ultz.Extensions.Commands/DummyServiceProvider.cs
diff --git a/src/Ultz.Extensions.Commands/Events/CommandExecutedEventArgs.cs b/src/libraries/Ultz.Extensions.Commands/Events/CommandExecutedEventArgs.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Events/CommandExecutedEventArgs.cs
rename to src/libraries/Ultz.Extensions.Commands/Events/CommandExecutedEventArgs.cs
diff --git a/src/Ultz.Extensions.Commands/Events/CommandExecutionFailedEventArgs.cs b/src/libraries/Ultz.Extensions.Commands/Events/CommandExecutionFailedEventArgs.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Events/CommandExecutionFailedEventArgs.cs
rename to src/libraries/Ultz.Extensions.Commands/Events/CommandExecutionFailedEventArgs.cs
diff --git a/src/Ultz.Extensions.Commands/Extensions/StringComparisonExtensions.cs b/src/libraries/Ultz.Extensions.Commands/Extensions/StringComparisonExtensions.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Extensions/StringComparisonExtensions.cs
rename to src/libraries/Ultz.Extensions.Commands/Extensions/StringComparisonExtensions.cs
diff --git a/src/Ultz.Extensions.Commands/ICommandService.cs b/src/libraries/Ultz.Extensions.Commands/ICommandService.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/ICommandService.cs
rename to src/libraries/Ultz.Extensions.Commands/ICommandService.cs
diff --git a/src/Ultz.Extensions.Commands/Mapping/CommandMap.cs b/src/libraries/Ultz.Extensions.Commands/Mapping/CommandMap.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Mapping/CommandMap.cs
rename to src/libraries/Ultz.Extensions.Commands/Mapping/CommandMap.cs
diff --git a/src/Ultz.Extensions.Commands/Mapping/CommandMapNode.cs b/src/libraries/Ultz.Extensions.Commands/Mapping/CommandMapNode.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Mapping/CommandMapNode.cs
rename to src/libraries/Ultz.Extensions.Commands/Mapping/CommandMapNode.cs
diff --git a/src/Ultz.Extensions.Commands/Mapping/CommandMappingException.cs b/src/libraries/Ultz.Extensions.Commands/Mapping/CommandMappingException.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Mapping/CommandMappingException.cs
rename to src/libraries/Ultz.Extensions.Commands/Mapping/CommandMappingException.cs
diff --git a/src/Ultz.Extensions.Commands/Mapping/CommandMatch.cs b/src/libraries/Ultz.Extensions.Commands/Mapping/CommandMatch.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Mapping/CommandMatch.cs
rename to src/libraries/Ultz.Extensions.Commands/Mapping/CommandMatch.cs
diff --git a/src/Ultz.Extensions.Commands/ModuleBases/IModuleBase.cs b/src/libraries/Ultz.Extensions.Commands/ModuleBases/IModuleBase.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/ModuleBases/IModuleBase.cs
rename to src/libraries/Ultz.Extensions.Commands/ModuleBases/IModuleBase.cs
diff --git a/src/Ultz.Extensions.Commands/ModuleBases/ModuleBase.cs b/src/libraries/Ultz.Extensions.Commands/ModuleBases/ModuleBase.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/ModuleBases/ModuleBase.cs
rename to src/libraries/Ultz.Extensions.Commands/ModuleBases/ModuleBase.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParser.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParser.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParser.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParser.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParserFailure.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParserFailure.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParserFailure.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParserFailure.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParserResult.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParserResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParserResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/ArgumentParsers/Default/DefaultArgumentParserResult.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/ArgumentParsers/IArgumentParser.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/ArgumentParsers/IArgumentParser.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/ArgumentParsers/IArgumentParser.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/ArgumentParsers/IArgumentParser.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/TypeParsers/ITypeParser.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/ITypeParser.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/TypeParsers/ITypeParser.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/ITypeParser.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/TypeParsers/NullableTypeParser.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/NullableTypeParser.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/TypeParsers/NullableTypeParser.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/NullableTypeParser.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/EnumTypeParser.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/EnumTypeParser.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/EnumTypeParser.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/EnumTypeParser.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/IPrimitiveTypeParser.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/IPrimitiveTypeParser.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/IPrimitiveTypeParser.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/IPrimitiveTypeParser.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/NullableEnumTypeParser.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/NullableEnumTypeParser.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/NullableEnumTypeParser.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/NullableEnumTypeParser.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/NullablePrimitiveTypeParser.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/NullablePrimitiveTypeParser.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/NullablePrimitiveTypeParser.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/NullablePrimitiveTypeParser.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/PrimitiveTypeParser.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/PrimitiveTypeParser.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/PrimitiveTypeParser.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/Primitive/PrimitiveTypeParser.cs
diff --git a/src/Ultz.Extensions.Commands/Parsing/TypeParsers/TypeParser.cs b/src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/TypeParser.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Parsing/TypeParsers/TypeParser.cs
rename to src/libraries/Ultz.Extensions.Commands/Parsing/TypeParsers/TypeParser.cs
diff --git a/src/Ultz.Extensions.Commands/README.md b/src/libraries/Ultz.Extensions.Commands/README.md
similarity index 100%
rename from src/Ultz.Extensions.Commands/README.md
rename to src/libraries/Ultz.Extensions.Commands/README.md
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/Checks/ChecksFailedResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/Checks/ChecksFailedResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/Checks/ChecksFailedResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/Checks/ChecksFailedResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/Checks/ParameterChecksFailedResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/Checks/ParameterChecksFailedResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/Checks/ParameterChecksFailedResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/Checks/ParameterChecksFailedResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/CommandDisabledResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/CommandDisabledResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/CommandDisabledResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/CommandDisabledResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/CommandNotFoundResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/CommandNotFoundResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/CommandNotFoundResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/CommandNotFoundResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/CommandOnCooldownResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/CommandOnCooldownResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/CommandOnCooldownResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/CommandOnCooldownResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/Execution/CommandExecutionStep.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/Execution/CommandExecutionStep.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/Execution/CommandExecutionStep.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/Execution/CommandExecutionStep.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/Execution/ExecutionFailedResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/Execution/ExecutionFailedResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/Execution/ExecutionFailedResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/Execution/ExecutionFailedResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/FailedResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/FailedResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/FailedResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/FailedResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/OverloadsFailedResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/OverloadsFailedResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/OverloadsFailedResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/OverloadsFailedResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/Parsing/ArgumentParseFailedResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/Parsing/ArgumentParseFailedResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/Parsing/ArgumentParseFailedResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/Parsing/ArgumentParseFailedResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Failed/Parsing/TypeParseFailedResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Failed/Parsing/TypeParseFailedResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Failed/Parsing/TypeParseFailedResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Failed/Parsing/TypeParseFailedResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/IResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/IResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/IResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/IResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/Successful/SuccessfulResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/Successful/SuccessfulResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/Successful/SuccessfulResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/Successful/SuccessfulResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/User/ArgumentParserResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/User/ArgumentParserResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/User/ArgumentParserResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/User/ArgumentParserResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/User/CheckResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/User/CheckResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/User/CheckResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/User/CheckResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/User/CommandResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/User/CommandResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/User/CommandResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/User/CommandResult.cs
diff --git a/src/Ultz.Extensions.Commands/Results/User/TypeParserResult.cs b/src/libraries/Ultz.Extensions.Commands/Results/User/TypeParserResult.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Results/User/TypeParserResult.cs
rename to src/libraries/Ultz.Extensions.Commands/Results/User/TypeParserResult.cs
diff --git a/src/Ultz.Extensions.Commands/RunMode.cs b/src/libraries/Ultz.Extensions.Commands/RunMode.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/RunMode.cs
rename to src/libraries/Ultz.Extensions.Commands/RunMode.cs
diff --git a/src/Ultz.Extensions.Commands/SeparatorRequirement.cs b/src/libraries/Ultz.Extensions.Commands/SeparatorRequirement.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/SeparatorRequirement.cs
rename to src/libraries/Ultz.Extensions.Commands/SeparatorRequirement.cs
diff --git a/src/Ultz.Extensions.Commands/Ultz.Extensions.Commands.csproj b/src/libraries/Ultz.Extensions.Commands/Ultz.Extensions.Commands.csproj
similarity index 100%
rename from src/Ultz.Extensions.Commands/Ultz.Extensions.Commands.csproj
rename to src/libraries/Ultz.Extensions.Commands/Ultz.Extensions.Commands.csproj
diff --git a/src/Ultz.Extensions.Commands/Utilities.cs b/src/libraries/Ultz.Extensions.Commands/Utilities.cs
similarity index 100%
rename from src/Ultz.Extensions.Commands/Utilities.cs
rename to src/libraries/Ultz.Extensions.Commands/Utilities.cs
diff --git a/src/Ultz.Extensions.Commands/docs/.gitignore b/src/libraries/Ultz.Extensions.Commands/docs/.gitignore
similarity index 100%
rename from src/Ultz.Extensions.Commands/docs/.gitignore
rename to src/libraries/Ultz.Extensions.Commands/docs/.gitignore
diff --git a/src/Ultz.Extensions.Commands/docs/api/.gitignore b/src/libraries/Ultz.Extensions.Commands/docs/api/.gitignore
similarity index 100%
rename from src/Ultz.Extensions.Commands/docs/api/.gitignore
rename to src/libraries/Ultz.Extensions.Commands/docs/api/.gitignore
diff --git a/src/Ultz.Extensions.Commands/docs/api/index.md b/src/libraries/Ultz.Extensions.Commands/docs/api/index.md
similarity index 100%
rename from src/Ultz.Extensions.Commands/docs/api/index.md
rename to src/libraries/Ultz.Extensions.Commands/docs/api/index.md
diff --git a/src/Ultz.Extensions.Commands/docs/articles/intro.md b/src/libraries/Ultz.Extensions.Commands/docs/articles/intro.md
similarity index 100%
rename from src/Ultz.Extensions.Commands/docs/articles/intro.md
rename to src/libraries/Ultz.Extensions.Commands/docs/articles/intro.md
diff --git a/src/Ultz.Extensions.Commands/docs/articles/toc.yml b/src/libraries/Ultz.Extensions.Commands/docs/articles/toc.yml
similarity index 100%
rename from src/Ultz.Extensions.Commands/docs/articles/toc.yml
rename to src/libraries/Ultz.Extensions.Commands/docs/articles/toc.yml
diff --git a/src/Ultz.Extensions.Commands/docs/docfx.json b/src/libraries/Ultz.Extensions.Commands/docs/docfx.json
similarity index 100%
rename from src/Ultz.Extensions.Commands/docs/docfx.json
rename to src/libraries/Ultz.Extensions.Commands/docs/docfx.json
diff --git a/src/Ultz.Extensions.Commands/docs/filter.yml b/src/libraries/Ultz.Extensions.Commands/docs/filter.yml
similarity index 100%
rename from src/Ultz.Extensions.Commands/docs/filter.yml
rename to src/libraries/Ultz.Extensions.Commands/docs/filter.yml
diff --git a/src/Ultz.Extensions.Commands/docs/index.md b/src/libraries/Ultz.Extensions.Commands/docs/index.md
similarity index 100%
rename from src/Ultz.Extensions.Commands/docs/index.md
rename to src/libraries/Ultz.Extensions.Commands/docs/index.md
diff --git a/src/Ultz.Extensions.Commands/docs/readme.md b/src/libraries/Ultz.Extensions.Commands/docs/readme.md
similarity index 100%
rename from src/Ultz.Extensions.Commands/docs/readme.md
rename to src/libraries/Ultz.Extensions.Commands/docs/readme.md
diff --git a/src/Ultz.Extensions.Commands/docs/toc.yml b/src/libraries/Ultz.Extensions.Commands/docs/toc.yml
similarity index 100%
rename from src/Ultz.Extensions.Commands/docs/toc.yml
rename to src/libraries/Ultz.Extensions.Commands/docs/toc.yml
diff --git a/src/libraries/Ultz.Extensions.Commands/key.snk b/src/libraries/Ultz.Extensions.Commands/key.snk
new file mode 100644
index 0000000..beabd32
Binary files /dev/null and b/src/libraries/Ultz.Extensions.Commands/key.snk differ
diff --git a/src/Ultz.Extensions.Events/AsynchronousEvent.cs b/src/libraries/Ultz.Extensions.Events/AsynchronousEvent.cs
similarity index 100%
rename from src/Ultz.Extensions.Events/AsynchronousEvent.cs
rename to src/libraries/Ultz.Extensions.Events/AsynchronousEvent.cs
diff --git a/src/Ultz.Extensions.Events/AsynchronousEventHandler.cs b/src/libraries/Ultz.Extensions.Events/AsynchronousEventHandler.cs
similarity index 100%
rename from src/Ultz.Extensions.Events/AsynchronousEventHandler.cs
rename to src/libraries/Ultz.Extensions.Events/AsynchronousEventHandler.cs
diff --git a/src/Ultz.Extensions.Events/README.md b/src/libraries/Ultz.Extensions.Events/README.md
similarity index 100%
rename from src/Ultz.Extensions.Events/README.md
rename to src/libraries/Ultz.Extensions.Events/README.md
diff --git a/src/Ultz.Extensions.Events/Ultz.Extensions.Events.csproj b/src/libraries/Ultz.Extensions.Events/Ultz.Extensions.Events.csproj
similarity index 100%
rename from src/Ultz.Extensions.Events/Ultz.Extensions.Events.csproj
rename to src/libraries/Ultz.Extensions.Events/Ultz.Extensions.Events.csproj
diff --git a/src/libraries/Ultz.Extensions.Events/key.snk b/src/libraries/Ultz.Extensions.Events/key.snk
new file mode 100644
index 0000000..adb3b10
Binary files /dev/null and b/src/libraries/Ultz.Extensions.Events/key.snk differ
diff --git a/src/Ultz.Extensions.Logging/ConsoleOutput.cs b/src/libraries/Ultz.Extensions.Logging/ConsoleOutput.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/ConsoleOutput.cs
rename to src/libraries/Ultz.Extensions.Logging/ConsoleOutput.cs
diff --git a/src/Ultz.Extensions.Logging/IMessageFormatter.cs b/src/libraries/Ultz.Extensions.Logging/IMessageFormatter.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/IMessageFormatter.cs
rename to src/libraries/Ultz.Extensions.Logging/IMessageFormatter.cs
diff --git a/src/Ultz.Extensions.Logging/IOutput.cs b/src/libraries/Ultz.Extensions.Logging/IOutput.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/IOutput.cs
rename to src/libraries/Ultz.Extensions.Logging/IOutput.cs
diff --git a/src/Ultz.Extensions.Logging/Log.cs b/src/libraries/Ultz.Extensions.Logging/Log.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/Log.cs
rename to src/libraries/Ultz.Extensions.Logging/Log.cs
diff --git a/src/Ultz.Extensions.Logging/Log`1.cs b/src/libraries/Ultz.Extensions.Logging/Log`1.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/Log`1.cs
rename to src/libraries/Ultz.Extensions.Logging/Log`1.cs
diff --git a/src/Ultz.Extensions.Logging/MessageFormatter.cs b/src/libraries/Ultz.Extensions.Logging/MessageFormatter.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/MessageFormatter.cs
rename to src/libraries/Ultz.Extensions.Logging/MessageFormatter.cs
diff --git a/src/Ultz.Extensions.Logging/NopScopeProvider.cs b/src/libraries/Ultz.Extensions.Logging/NopScopeProvider.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/NopScopeProvider.cs
rename to src/libraries/Ultz.Extensions.Logging/NopScopeProvider.cs
diff --git a/src/Ultz.Extensions.Logging/Output.cs b/src/libraries/Ultz.Extensions.Logging/Output.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/Output.cs
rename to src/libraries/Ultz.Extensions.Logging/Output.cs
diff --git a/src/Ultz.Extensions.Logging/README.md b/src/libraries/Ultz.Extensions.Logging/README.md
similarity index 100%
rename from src/Ultz.Extensions.Logging/README.md
rename to src/libraries/Ultz.Extensions.Logging/README.md
diff --git a/src/Ultz.Extensions.Logging/TextWriterOutput.cs b/src/libraries/Ultz.Extensions.Logging/TextWriterOutput.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/TextWriterOutput.cs
rename to src/libraries/Ultz.Extensions.Logging/TextWriterOutput.cs
diff --git a/src/Ultz.Extensions.Logging/Ultz.Extensions.Logging.csproj b/src/libraries/Ultz.Extensions.Logging/Ultz.Extensions.Logging.csproj
similarity index 100%
rename from src/Ultz.Extensions.Logging/Ultz.Extensions.Logging.csproj
rename to src/libraries/Ultz.Extensions.Logging/Ultz.Extensions.Logging.csproj
diff --git a/src/Ultz.Extensions.Logging/UltzLogger.cs b/src/libraries/Ultz.Extensions.Logging/UltzLogger.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/UltzLogger.cs
rename to src/libraries/Ultz.Extensions.Logging/UltzLogger.cs
diff --git a/src/Ultz.Extensions.Logging/UltzLoggerExtensions.cs b/src/libraries/Ultz.Extensions.Logging/UltzLoggerExtensions.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/UltzLoggerExtensions.cs
rename to src/libraries/Ultz.Extensions.Logging/UltzLoggerExtensions.cs
diff --git a/src/Ultz.Extensions.Logging/UltzLoggerProvider.cs b/src/libraries/Ultz.Extensions.Logging/UltzLoggerProvider.cs
similarity index 100%
rename from src/Ultz.Extensions.Logging/UltzLoggerProvider.cs
rename to src/libraries/Ultz.Extensions.Logging/UltzLoggerProvider.cs
diff --git a/src/libraries/Ultz.Extensions.Logging/key.snk b/src/libraries/Ultz.Extensions.Logging/key.snk
new file mode 100644
index 0000000..1fc6810
Binary files /dev/null and b/src/libraries/Ultz.Extensions.Logging/key.snk differ
diff --git a/src/Ultz.Extensions.Logging/pkginfo.props b/src/libraries/Ultz.Extensions.Logging/pkginfo.props
similarity index 100%
rename from src/Ultz.Extensions.Logging/pkginfo.props
rename to src/libraries/Ultz.Extensions.Logging/pkginfo.props
diff --git a/src/Ultz.Extensions.PrivacyEnhancedMail/CertHelpers.cs b/src/libraries/Ultz.Extensions.PrivacyEnhancedMail/CertHelpers.cs
similarity index 100%
rename from src/Ultz.Extensions.PrivacyEnhancedMail/CertHelpers.cs
rename to src/libraries/Ultz.Extensions.PrivacyEnhancedMail/CertHelpers.cs
diff --git a/src/Ultz.Extensions.PrivacyEnhancedMail/Pem.cs b/src/libraries/Ultz.Extensions.PrivacyEnhancedMail/Pem.cs
similarity index 100%
rename from src/Ultz.Extensions.PrivacyEnhancedMail/Pem.cs
rename to src/libraries/Ultz.Extensions.PrivacyEnhancedMail/Pem.cs
diff --git a/src/Ultz.Extensions.PrivacyEnhancedMail/PemExt.cs b/src/libraries/Ultz.Extensions.PrivacyEnhancedMail/PemExt.cs
similarity index 100%
rename from src/Ultz.Extensions.PrivacyEnhancedMail/PemExt.cs
rename to src/libraries/Ultz.Extensions.PrivacyEnhancedMail/PemExt.cs
diff --git a/src/Ultz.Extensions.PrivacyEnhancedMail/README.md b/src/libraries/Ultz.Extensions.PrivacyEnhancedMail/README.md
similarity index 100%
rename from src/Ultz.Extensions.PrivacyEnhancedMail/README.md
rename to src/libraries/Ultz.Extensions.PrivacyEnhancedMail/README.md
diff --git a/src/Ultz.Extensions.PrivacyEnhancedMail/RsaParameterTraits.cs b/src/libraries/Ultz.Extensions.PrivacyEnhancedMail/RsaParameterTraits.cs
similarity index 100%
rename from src/Ultz.Extensions.PrivacyEnhancedMail/RsaParameterTraits.cs
rename to src/libraries/Ultz.Extensions.PrivacyEnhancedMail/RsaParameterTraits.cs
diff --git a/src/Ultz.Extensions.PrivacyEnhancedMail/Ultz.Extensions.PrivacyEnhancedMail.csproj b/src/libraries/Ultz.Extensions.PrivacyEnhancedMail/Ultz.Extensions.PrivacyEnhancedMail.csproj
similarity index 100%
rename from src/Ultz.Extensions.PrivacyEnhancedMail/Ultz.Extensions.PrivacyEnhancedMail.csproj
rename to src/libraries/Ultz.Extensions.PrivacyEnhancedMail/Ultz.Extensions.PrivacyEnhancedMail.csproj
diff --git a/src/libraries/Ultz.Extensions.PrivacyEnhancedMail/key.snk b/src/libraries/Ultz.Extensions.PrivacyEnhancedMail/key.snk
new file mode 100644
index 0000000..e2aceb8
Binary files /dev/null and b/src/libraries/Ultz.Extensions.PrivacyEnhancedMail/key.snk differ
diff --git a/src/Ultz.Extensions.PrivacyEnhancedMail/pkginfo.props b/src/libraries/Ultz.Extensions.PrivacyEnhancedMail/pkginfo.props
similarity index 100%
rename from src/Ultz.Extensions.PrivacyEnhancedMail/pkginfo.props
rename to src/libraries/Ultz.Extensions.PrivacyEnhancedMail/pkginfo.props
diff --git a/src/libraries/signall.ps1 b/src/libraries/signall.ps1
new file mode 100644
index 0000000..3285f63
--- /dev/null
+++ b/src/libraries/signall.ps1
@@ -0,0 +1,8 @@
+$list = (Get-ChildItem -Recurse -File -Path './' -Filter '*.csproj').FullName
+
+foreach ($file in $list)
+{
+ $filePath = (Get-Item $file).Directory
+ $keyPath = Join-Path -Path $filePath -ChildPath "key.snk"
+ sn -k "$keyPath"
+}