diff --git a/.idea/.idea.AdventOfCode/.idea/.gitignore b/.idea/.idea.AdventOfCode/.idea/.gitignore
new file mode 100644
index 0000000..1cfeef3
--- /dev/null
+++ b/.idea/.idea.AdventOfCode/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/modules.xml
+/.idea.AdventOfCode2020.iml
+/contentModel.xml
+/projectSettingsUpdater.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.AdventOfCode/.idea/encodings.xml b/.idea/.idea.AdventOfCode/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.AdventOfCode/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.AdventOfCode/.idea/indexLayout.xml b/.idea/.idea.AdventOfCode/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.AdventOfCode/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.AdventOfCode/.idea/vcs.xml b/.idea/.idea.AdventOfCode/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/.idea.AdventOfCode/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AdventOfCode.sln b/AdventOfCode.sln
new file mode 100644
index 0000000..40d4b0d
--- /dev/null
+++ b/AdventOfCode.sln
@@ -0,0 +1,55 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30711.63
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdventOfCode2020", "AdventOfCode2020\AdventOfCode2020.csproj", "{CD1829F6-166D-4F78-AB95-C58916F42494}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2020.Tests", "AdventOfCode2020.Tests\AdventOfCode2020.Tests.csproj", "{2B079D7D-08D4-4FFB-A000-858FFDD945FA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2017", "AdventOfCode2017\AdventOfCode2017.csproj", "{49C8A67C-D94C-4CFB-B7FB-C19A1A83CA66}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2017.Tests", "AdventOfCode2017.Tests\AdventOfCode2017.Tests.csproj", "{3537CE59-1C57-481B-85F7-3F2A1F0EDE1D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2018", "AdventOfCode2018\AdventOfCode2018.csproj", "{43DAF84F-369A-48C5-9292-536094336F8F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2018.Tests", "AdventOfCode2018.Tests\AdventOfCode2018.Tests.csproj", "{EE35694D-97C1-485D-9FFE-73912FA97446}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CD1829F6-166D-4F78-AB95-C58916F42494}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CD1829F6-166D-4F78-AB95-C58916F42494}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CD1829F6-166D-4F78-AB95-C58916F42494}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CD1829F6-166D-4F78-AB95-C58916F42494}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2B079D7D-08D4-4FFB-A000-858FFDD945FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2B079D7D-08D4-4FFB-A000-858FFDD945FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2B079D7D-08D4-4FFB-A000-858FFDD945FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2B079D7D-08D4-4FFB-A000-858FFDD945FA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {49C8A67C-D94C-4CFB-B7FB-C19A1A83CA66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {49C8A67C-D94C-4CFB-B7FB-C19A1A83CA66}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {49C8A67C-D94C-4CFB-B7FB-C19A1A83CA66}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {49C8A67C-D94C-4CFB-B7FB-C19A1A83CA66}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3537CE59-1C57-481B-85F7-3F2A1F0EDE1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3537CE59-1C57-481B-85F7-3F2A1F0EDE1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3537CE59-1C57-481B-85F7-3F2A1F0EDE1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3537CE59-1C57-481B-85F7-3F2A1F0EDE1D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {43DAF84F-369A-48C5-9292-536094336F8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {43DAF84F-369A-48C5-9292-536094336F8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {43DAF84F-369A-48C5-9292-536094336F8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {43DAF84F-369A-48C5-9292-536094336F8F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EE35694D-97C1-485D-9FFE-73912FA97446}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EE35694D-97C1-485D-9FFE-73912FA97446}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EE35694D-97C1-485D-9FFE-73912FA97446}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EE35694D-97C1-485D-9FFE-73912FA97446}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {4BAE59D7-7AFF-42B6-A391-CD22CD443B03}
+ EndGlobalSection
+EndGlobal
diff --git a/AdventOfCode2017.sln b/AdventOfCode2017.sln
deleted file mode 100644
index fc7649f..0000000
--- a/AdventOfCode2017.sln
+++ /dev/null
@@ -1,31 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.28307.102
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2017", "AdventOfCode2017\AdventOfCode2017.csproj", "{49C8A67C-D94C-4CFB-B7FB-C19A1A83CA66}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2017.Tests", "AdventOfCode2017.Tests\AdventOfCode2017.Tests.csproj", "{3537CE59-1C57-481B-85F7-3F2A1F0EDE1D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {49C8A67C-D94C-4CFB-B7FB-C19A1A83CA66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {49C8A67C-D94C-4CFB-B7FB-C19A1A83CA66}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {49C8A67C-D94C-4CFB-B7FB-C19A1A83CA66}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {49C8A67C-D94C-4CFB-B7FB-C19A1A83CA66}.Release|Any CPU.Build.0 = Release|Any CPU
- {3537CE59-1C57-481B-85F7-3F2A1F0EDE1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3537CE59-1C57-481B-85F7-3F2A1F0EDE1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3537CE59-1C57-481B-85F7-3F2A1F0EDE1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3537CE59-1C57-481B-85F7-3F2A1F0EDE1D}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {1D80D845-47C9-4610-BA3D-DCAAAD773CA1}
- EndGlobalSection
-EndGlobal
diff --git a/AdventOfCode2018.sln b/AdventOfCode2018.sln
deleted file mode 100644
index 3577bbc..0000000
--- a/AdventOfCode2018.sln
+++ /dev/null
@@ -1,31 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.28307.136
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2018", "AdventOfCode2018\AdventOfCode2018.csproj", "{43DAF84F-369A-48C5-9292-536094336F8F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2018.Tests", "AdventOfCode2018.Tests\AdventOfCode2018.Tests.csproj", "{EE35694D-97C1-485D-9FFE-73912FA97446}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {43DAF84F-369A-48C5-9292-536094336F8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {43DAF84F-369A-48C5-9292-536094336F8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {43DAF84F-369A-48C5-9292-536094336F8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {43DAF84F-369A-48C5-9292-536094336F8F}.Release|Any CPU.Build.0 = Release|Any CPU
- {EE35694D-97C1-485D-9FFE-73912FA97446}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EE35694D-97C1-485D-9FFE-73912FA97446}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EE35694D-97C1-485D-9FFE-73912FA97446}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EE35694D-97C1-485D-9FFE-73912FA97446}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {F3093E64-6D79-4D82-833A-317E6A2D3ACC}
- EndGlobalSection
-EndGlobal
diff --git a/AdventOfCode2020.sln b/AdventOfCode2020.sln
deleted file mode 100644
index 24b5fc3..0000000
--- a/AdventOfCode2020.sln
+++ /dev/null
@@ -1,31 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.30711.63
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdventOfCode2020", "AdventOfCode2020\AdventOfCode2020.csproj", "{CD1829F6-166D-4F78-AB95-C58916F42494}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode2020.Tests", "AdventOfCode2020.Tests\AdventOfCode2020.Tests.csproj", "{2B079D7D-08D4-4FFB-A000-858FFDD945FA}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {CD1829F6-166D-4F78-AB95-C58916F42494}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CD1829F6-166D-4F78-AB95-C58916F42494}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CD1829F6-166D-4F78-AB95-C58916F42494}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CD1829F6-166D-4F78-AB95-C58916F42494}.Release|Any CPU.Build.0 = Release|Any CPU
- {2B079D7D-08D4-4FFB-A000-858FFDD945FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2B079D7D-08D4-4FFB-A000-858FFDD945FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2B079D7D-08D4-4FFB-A000-858FFDD945FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2B079D7D-08D4-4FFB-A000-858FFDD945FA}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {4BAE59D7-7AFF-42B6-A391-CD22CD443B03}
- EndGlobalSection
-EndGlobal