diff --git a/.gitignore b/.gitignore
index 1488bbd..a15f445 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
################################################################################
/.vs/Icarus
+.vscode/*
/bin/*
/bin/Debug/netcoreapp2.2
/Migrations
@@ -13,3 +14,7 @@
/appsettings.Development.json
appsettings.Development.json
appsettings.json
+Icarus/bin
+Icarus/obj
+Models/bin
+Models/obj
diff --git a/Icarus.sln b/Icarus.sln
index 018545a..6a38760 100644
--- a/Icarus.sln
+++ b/Icarus.sln
@@ -1,25 +1,22 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.2.32616.157
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Icarus", "Icarus.csproj", "{66389DAC-0D3C-4271-BBAE-AF27FCFD28B7}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {66389DAC-0D3C-4271-BBAE-AF27FCFD28B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66389DAC-0D3C-4271-BBAE-AF27FCFD28B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66389DAC-0D3C-4271-BBAE-AF27FCFD28B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66389DAC-0D3C-4271-BBAE-AF27FCFD28B7}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {0BE61157-7A0C-41CF-B097-71178A3F6755}
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Icarus", "Icarus\Icarus.csproj", "{EC7ADFAA-9CCA-40E4-B035-DC2ADF117CB4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {EC7ADFAA-9CCA-40E4-B035-DC2ADF117CB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EC7ADFAA-9CCA-40E4-B035-DC2ADF117CB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EC7ADFAA-9CCA-40E4-B035-DC2ADF117CB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EC7ADFAA-9CCA-40E4-B035-DC2ADF117CB4}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/Authorization/Handlers/HasScopeHandler.cs b/Icarus/Authorization/Handlers/HasScopeHandler.cs
similarity index 100%
rename from Authorization/Handlers/HasScopeHandler.cs
rename to Icarus/Authorization/Handlers/HasScopeHandler.cs
diff --git a/Authorization/HasScopeRequirement.cs b/Icarus/Authorization/HasScopeRequirement.cs
similarity index 100%
rename from Authorization/HasScopeRequirement.cs
rename to Icarus/Authorization/HasScopeRequirement.cs
diff --git a/Certs/Signing.cs b/Icarus/Certs/Signing.cs
similarity index 100%
rename from Certs/Signing.cs
rename to Icarus/Certs/Signing.cs
diff --git a/Controllers/Managers/AlbumManager.cs b/Icarus/Controllers/Managers/AlbumManager.cs
similarity index 100%
rename from Controllers/Managers/AlbumManager.cs
rename to Icarus/Controllers/Managers/AlbumManager.cs
diff --git a/Controllers/Managers/ArtistManager.cs b/Icarus/Controllers/Managers/ArtistManager.cs
similarity index 100%
rename from Controllers/Managers/ArtistManager.cs
rename to Icarus/Controllers/Managers/ArtistManager.cs
diff --git a/Controllers/Managers/BaseManagers.cs b/Icarus/Controllers/Managers/BaseManagers.cs
similarity index 100%
rename from Controllers/Managers/BaseManagers.cs
rename to Icarus/Controllers/Managers/BaseManagers.cs
diff --git a/Controllers/Managers/CoverArtManager.cs b/Icarus/Controllers/Managers/CoverArtManager.cs
similarity index 100%
rename from Controllers/Managers/CoverArtManager.cs
rename to Icarus/Controllers/Managers/CoverArtManager.cs
diff --git a/Controllers/Managers/DirectoryManager.cs b/Icarus/Controllers/Managers/DirectoryManager.cs
similarity index 100%
rename from Controllers/Managers/DirectoryManager.cs
rename to Icarus/Controllers/Managers/DirectoryManager.cs
diff --git a/Controllers/Managers/GenreManager.cs b/Icarus/Controllers/Managers/GenreManager.cs
similarity index 100%
rename from Controllers/Managers/GenreManager.cs
rename to Icarus/Controllers/Managers/GenreManager.cs
diff --git a/Controllers/Managers/SongManager.cs b/Icarus/Controllers/Managers/SongManager.cs
similarity index 100%
rename from Controllers/Managers/SongManager.cs
rename to Icarus/Controllers/Managers/SongManager.cs
diff --git a/Controllers/Managers/TokenManager.cs b/Icarus/Controllers/Managers/TokenManager.cs
similarity index 100%
rename from Controllers/Managers/TokenManager.cs
rename to Icarus/Controllers/Managers/TokenManager.cs
diff --git a/Controllers/Utilities/MetadataRetriever.cs b/Icarus/Controllers/Utilities/MetadataRetriever.cs
similarity index 100%
rename from Controllers/Utilities/MetadataRetriever.cs
rename to Icarus/Controllers/Utilities/MetadataRetriever.cs
diff --git a/Controllers/Utilities/PasswordEncryption.cs b/Icarus/Controllers/Utilities/PasswordEncryption.cs
similarity index 100%
rename from Controllers/Utilities/PasswordEncryption.cs
rename to Icarus/Controllers/Utilities/PasswordEncryption.cs
diff --git a/Controllers/Utilities/SongCompression.cs b/Icarus/Controllers/Utilities/SongCompression.cs
similarity index 100%
rename from Controllers/Utilities/SongCompression.cs
rename to Icarus/Controllers/Utilities/SongCompression.cs
diff --git a/Controllers/v1/AlbumController.cs b/Icarus/Controllers/v1/AlbumController.cs
similarity index 100%
rename from Controllers/v1/AlbumController.cs
rename to Icarus/Controllers/v1/AlbumController.cs
diff --git a/Controllers/v1/ArtistController.cs b/Icarus/Controllers/v1/ArtistController.cs
similarity index 100%
rename from Controllers/v1/ArtistController.cs
rename to Icarus/Controllers/v1/ArtistController.cs
diff --git a/Controllers/v1/BaseController.cs b/Icarus/Controllers/v1/BaseController.cs
similarity index 100%
rename from Controllers/v1/BaseController.cs
rename to Icarus/Controllers/v1/BaseController.cs
diff --git a/Controllers/v1/CoverArtController.cs b/Icarus/Controllers/v1/CoverArtController.cs
similarity index 100%
rename from Controllers/v1/CoverArtController.cs
rename to Icarus/Controllers/v1/CoverArtController.cs
diff --git a/Controllers/v1/GenreController.cs b/Icarus/Controllers/v1/GenreController.cs
similarity index 100%
rename from Controllers/v1/GenreController.cs
rename to Icarus/Controllers/v1/GenreController.cs
diff --git a/Controllers/v1/LoginController.cs b/Icarus/Controllers/v1/LoginController.cs
similarity index 100%
rename from Controllers/v1/LoginController.cs
rename to Icarus/Controllers/v1/LoginController.cs
diff --git a/Controllers/v1/RegisterController.cs b/Icarus/Controllers/v1/RegisterController.cs
similarity index 100%
rename from Controllers/v1/RegisterController.cs
rename to Icarus/Controllers/v1/RegisterController.cs
diff --git a/Controllers/v1/SongCompressedDataControllers.cs b/Icarus/Controllers/v1/SongCompressedDataControllers.cs
similarity index 100%
rename from Controllers/v1/SongCompressedDataControllers.cs
rename to Icarus/Controllers/v1/SongCompressedDataControllers.cs
diff --git a/Controllers/v1/SongController.cs b/Icarus/Controllers/v1/SongController.cs
similarity index 100%
rename from Controllers/v1/SongController.cs
rename to Icarus/Controllers/v1/SongController.cs
diff --git a/Controllers/v1/SongDataController.cs b/Icarus/Controllers/v1/SongDataController.cs
similarity index 100%
rename from Controllers/v1/SongDataController.cs
rename to Icarus/Controllers/v1/SongDataController.cs
diff --git a/Controllers/v1/SongStreamController.cs b/Icarus/Controllers/v1/SongStreamController.cs
similarity index 100%
rename from Controllers/v1/SongStreamController.cs
rename to Icarus/Controllers/v1/SongStreamController.cs
diff --git a/Database/Contexts/AlbumContext.cs b/Icarus/Database/Contexts/AlbumContext.cs
similarity index 100%
rename from Database/Contexts/AlbumContext.cs
rename to Icarus/Database/Contexts/AlbumContext.cs
diff --git a/Database/Contexts/ArtistContext.cs b/Icarus/Database/Contexts/ArtistContext.cs
similarity index 100%
rename from Database/Contexts/ArtistContext.cs
rename to Icarus/Database/Contexts/ArtistContext.cs
diff --git a/Database/Contexts/CoverArtContext.cs b/Icarus/Database/Contexts/CoverArtContext.cs
similarity index 100%
rename from Database/Contexts/CoverArtContext.cs
rename to Icarus/Database/Contexts/CoverArtContext.cs
diff --git a/Database/Contexts/GenreContext.cs b/Icarus/Database/Contexts/GenreContext.cs
similarity index 100%
rename from Database/Contexts/GenreContext.cs
rename to Icarus/Database/Contexts/GenreContext.cs
diff --git a/Database/Contexts/SongContext.cs b/Icarus/Database/Contexts/SongContext.cs
similarity index 100%
rename from Database/Contexts/SongContext.cs
rename to Icarus/Database/Contexts/SongContext.cs
diff --git a/Database/Contexts/UserContext.cs b/Icarus/Database/Contexts/UserContext.cs
similarity index 100%
rename from Database/Contexts/UserContext.cs
rename to Icarus/Database/Contexts/UserContext.cs
diff --git a/Icarus.csproj b/Icarus/Icarus.csproj
similarity index 95%
rename from Icarus.csproj
rename to Icarus/Icarus.csproj
index 0dbde29..82181da 100644
--- a/Icarus.csproj
+++ b/Icarus/Icarus.csproj
@@ -32,6 +32,11 @@
+
+
+
+
+
diff --git a/Images/Configuration/api_cred.png b/Icarus/Images/Configuration/api_cred.png
similarity index 100%
rename from Images/Configuration/api_cred.png
rename to Icarus/Images/Configuration/api_cred.png
diff --git a/Images/Configuration/authorize_app.png b/Icarus/Images/Configuration/authorize_app.png
similarity index 100%
rename from Images/Configuration/authorize_app.png
rename to Icarus/Images/Configuration/authorize_app.png
diff --git a/Images/Configuration/configure_api.png b/Icarus/Images/Configuration/configure_api.png
similarity index 100%
rename from Images/Configuration/configure_api.png
rename to Icarus/Images/Configuration/configure_api.png
diff --git a/Images/Configuration/create_api.png b/Icarus/Images/Configuration/create_api.png
similarity index 100%
rename from Images/Configuration/create_api.png
rename to Icarus/Images/Configuration/create_api.png
diff --git a/Images/Configuration/create_m2m.png b/Icarus/Images/Configuration/create_m2m.png
similarity index 100%
rename from Images/Configuration/create_m2m.png
rename to Icarus/Images/Configuration/create_m2m.png
diff --git a/Images/Configuration/enter_api_info.png b/Icarus/Images/Configuration/enter_api_info.png
similarity index 100%
rename from Images/Configuration/enter_api_info.png
rename to Icarus/Images/Configuration/enter_api_info.png
diff --git a/Images/Configuration/permissions.png b/Icarus/Images/Configuration/permissions.png
similarity index 100%
rename from Images/Configuration/permissions.png
rename to Icarus/Images/Configuration/permissions.png
diff --git a/Images/Stock/CoverArt.png b/Icarus/Images/Stock/CoverArt.png
similarity index 100%
rename from Images/Stock/CoverArt.png
rename to Icarus/Images/Stock/CoverArt.png
diff --git a/Program.cs b/Icarus/Program.cs
similarity index 100%
rename from Program.cs
rename to Icarus/Program.cs
diff --git a/Properties/launchSettings.json b/Icarus/Properties/launchSettings.json
similarity index 100%
rename from Properties/launchSettings.json
rename to Icarus/Properties/launchSettings.json
diff --git a/Types/CoverArtTypes.cs b/Icarus/Types/CoverArtTypes.cs
similarity index 100%
rename from Types/CoverArtTypes.cs
rename to Icarus/Types/CoverArtTypes.cs
diff --git a/Types/DirectoryTypes.cs b/Icarus/Types/DirectoryTypes.cs
similarity index 100%
rename from Types/DirectoryTypes.cs
rename to Icarus/Types/DirectoryTypes.cs
diff --git a/appsettings.Development.json b/Icarus/appsettings.Development.json
similarity index 100%
rename from appsettings.Development.json
rename to Icarus/appsettings.Development.json
diff --git a/appsettings.json b/Icarus/appsettings.json
similarity index 100%
rename from appsettings.json
rename to Icarus/appsettings.json
diff --git a/Constants/DirectoryPaths.cs b/Models/Constants/DirectoryPaths.cs
similarity index 100%
rename from Constants/DirectoryPaths.cs
rename to Models/Constants/DirectoryPaths.cs
diff --git a/Constants/FileExtensions.cs b/Models/Constants/FileExtensions.cs
similarity index 100%
rename from Constants/FileExtensions.cs
rename to Models/Constants/FileExtensions.cs
diff --git a/Models/Models.csproj b/Models/Models.csproj
new file mode 100644
index 0000000..e6928d4
--- /dev/null
+++ b/Models/Models.csproj
@@ -0,0 +1,15 @@
+
+
+
+ net8.0
+ Icarus.Models
+ Icarus.Models
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/README.md b/README.md
index 9c93b5b..a472edd 100644
--- a/README.md
+++ b/README.md
@@ -111,6 +111,12 @@ The only requirement of the User is that the user should have full permissions t
### Migrations
+In order to utilize migrations the `dotnet-ef` tool needs to be installed. This can be done with the following command
+
+```BASH
+dotnet tool restore
+```
+
Prior to starting the API, the Migrations must be applied. There are 6 tables with migrations being applied and thy are:
* Users
* Song