diff --git a/.gitignore b/.gitignore
index 9858379..aa9fe84 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,4 @@
/.vs/
-Krypton.sln
_*.*
Source/**/bin/
Source/**/obj/
diff --git a/Krypton.sln b/Krypton.sln
new file mode 100644
index 0000000..9fcd485
--- /dev/null
+++ b/Krypton.sln
@@ -0,0 +1,60 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30717.126
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Krypton.Analysis", "Source\Analysis\Krypton.Analysis.csproj", "{77BBAC82-B5EB-4CBB-ACE3-4332FE565CF2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests", "UnitTests\UnitTests.csproj", "{EBA6157E-6AF1-4283-8EC2-6611A7A38F14}"
+EndProject
+Project("{9092AA53-FB77-4645-B42D-1CCCA6BD08BD}") = "JsCompilationTemplate", "Source\JsCompilationTemplate\JsCompilationTemplate.njsproj", "{36573D9C-6761-41E7-A61D-EA81AFBBBA4A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Krypton.CodeGeneration", "Source\CodeGeneration\Krypton.CodeGeneration.csproj", "{BD47167E-86B7-4C77-B414-E42AA3C7A747}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Krypton.Compiler", "Source\Compiler\Krypton.Compiler.csproj", "{9D605668-438C-4D77-933B-1A17A409A166}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B1B824F2-8D6D-4186-9C52-108D483FFB8D}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Krypton.Framework", "Source\Framework\Krypton.Framework.csproj", "{6E8F5ECE-EA6C-49A8-99B8-29D77615EEC8}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {77BBAC82-B5EB-4CBB-ACE3-4332FE565CF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {77BBAC82-B5EB-4CBB-ACE3-4332FE565CF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {77BBAC82-B5EB-4CBB-ACE3-4332FE565CF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {77BBAC82-B5EB-4CBB-ACE3-4332FE565CF2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EBA6157E-6AF1-4283-8EC2-6611A7A38F14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EBA6157E-6AF1-4283-8EC2-6611A7A38F14}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EBA6157E-6AF1-4283-8EC2-6611A7A38F14}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EBA6157E-6AF1-4283-8EC2-6611A7A38F14}.Release|Any CPU.Build.0 = Release|Any CPU
+ {36573D9C-6761-41E7-A61D-EA81AFBBBA4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {36573D9C-6761-41E7-A61D-EA81AFBBBA4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {36573D9C-6761-41E7-A61D-EA81AFBBBA4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {36573D9C-6761-41E7-A61D-EA81AFBBBA4A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BD47167E-86B7-4C77-B414-E42AA3C7A747}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BD47167E-86B7-4C77-B414-E42AA3C7A747}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BD47167E-86B7-4C77-B414-E42AA3C7A747}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BD47167E-86B7-4C77-B414-E42AA3C7A747}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9D605668-438C-4D77-933B-1A17A409A166}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9D605668-438C-4D77-933B-1A17A409A166}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9D605668-438C-4D77-933B-1A17A409A166}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9D605668-438C-4D77-933B-1A17A409A166}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6E8F5ECE-EA6C-49A8-99B8-29D77615EEC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6E8F5ECE-EA6C-49A8-99B8-29D77615EEC8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6E8F5ECE-EA6C-49A8-99B8-29D77615EEC8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6E8F5ECE-EA6C-49A8-99B8-29D77615EEC8}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {FDAF1A74-AC52-4C22-874C-02CE58A789E9}
+ EndGlobalSection
+EndGlobal
diff --git a/Source/Framework/Krypton.Framework.csproj b/Source/Framework/Krypton.Framework.csproj
new file mode 100644
index 0000000..3ca8e98
--- /dev/null
+++ b/Source/Framework/Krypton.Framework.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net5.0
+ 9.0
+ enable
+
+
+
\ No newline at end of file
diff --git a/UnitTests/UnitTests.csproj b/UnitTests/UnitTests.csproj
index a1fcb98..15c28b5 100644
--- a/UnitTests/UnitTests.csproj
+++ b/UnitTests/UnitTests.csproj
@@ -14,6 +14,7 @@
+