diff --git a/04/Scratchcards.Tests/GlobalUsings.cs b/04/Scratchcards.Tests/GlobalUsings.cs
new file mode 100644
index 0000000..8c927eb
--- /dev/null
+++ b/04/Scratchcards.Tests/GlobalUsings.cs
@@ -0,0 +1 @@
+global using Xunit;
\ No newline at end of file
diff --git a/04/Scratchcards.Tests/Scratchcards.Tests.csproj b/04/Scratchcards.Tests/Scratchcards.Tests.csproj
new file mode 100644
index 0000000..6793136
--- /dev/null
+++ b/04/Scratchcards.Tests/Scratchcards.Tests.csproj
@@ -0,0 +1,30 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+
+
+
+
diff --git a/04/Scratchcards.Tests/UnitTest1.cs b/04/Scratchcards.Tests/UnitTest1.cs
new file mode 100644
index 0000000..822f43f
--- /dev/null
+++ b/04/Scratchcards.Tests/UnitTest1.cs
@@ -0,0 +1,10 @@
+namespace Scratchcards.Tests;
+
+public class UnitTest1
+{
+ [Fact]
+ public void Test1()
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/04/Scratchcards/Program.cs b/04/Scratchcards/Program.cs
new file mode 100644
index 0000000..3751555
--- /dev/null
+++ b/04/Scratchcards/Program.cs
@@ -0,0 +1,2 @@
+// See https://aka.ms/new-console-template for more information
+Console.WriteLine("Hello, World!");
diff --git a/04/Scratchcards/Scratchcards.csproj b/04/Scratchcards/Scratchcards.csproj
new file mode 100644
index 0000000..2150e37
--- /dev/null
+++ b/04/Scratchcards/Scratchcards.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/AdventOfCode2023.sln b/AdventOfCode2023.sln
index 0d08297..3e793ae 100644
--- a/AdventOfCode2023.sln
+++ b/AdventOfCode2023.sln
@@ -21,6 +21,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GearRatios", "03\GearRatios
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GearRatios.Tests", "03\GearRatios.Tests\GearRatios.Tests.csproj", "{FEE9253C-A56B-4735-BDB3-C62220C5B1B1}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "04", "04", "{522D6D1E-54AD-4479-BB78-0AB5D7493EFC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Scratchcards", "04\Scratchcards\Scratchcards.csproj", "{B58CF14B-97A1-45F6-967F-29FA82DAFD0F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Scratchcards.Tests", "04\Scratchcards.Tests\Scratchcards.Tests.csproj", "{FF8A5512-85FD-45E7-9F97-EC528465949C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -54,6 +60,14 @@ Global
{FEE9253C-A56B-4735-BDB3-C62220C5B1B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FEE9253C-A56B-4735-BDB3-C62220C5B1B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FEE9253C-A56B-4735-BDB3-C62220C5B1B1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B58CF14B-97A1-45F6-967F-29FA82DAFD0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B58CF14B-97A1-45F6-967F-29FA82DAFD0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B58CF14B-97A1-45F6-967F-29FA82DAFD0F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B58CF14B-97A1-45F6-967F-29FA82DAFD0F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FF8A5512-85FD-45E7-9F97-EC528465949C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FF8A5512-85FD-45E7-9F97-EC528465949C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FF8A5512-85FD-45E7-9F97-EC528465949C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FF8A5512-85FD-45E7-9F97-EC528465949C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{3F8EAC09-4BC7-43AA-B72B-48DDD2710F6D} = {8C29858C-623A-461A-BF0B-254E151CD9C2}
@@ -62,5 +76,7 @@ Global
{4825CE42-4717-4DA6-944F-9BD9A825932B} = {4FD81B09-302F-4C76-BECB-B4559DF3984F}
{F697AC19-C92D-4E2A-975A-1A16A1961133} = {EA04152D-316A-4AA4-9BC1-57F6A9F3CD4E}
{FEE9253C-A56B-4735-BDB3-C62220C5B1B1} = {EA04152D-316A-4AA4-9BC1-57F6A9F3CD4E}
+ {B58CF14B-97A1-45F6-967F-29FA82DAFD0F} = {522D6D1E-54AD-4479-BB78-0AB5D7493EFC}
+ {FF8A5512-85FD-45E7-9F97-EC528465949C} = {522D6D1E-54AD-4479-BB78-0AB5D7493EFC}
EndGlobalSection
EndGlobal