diff --git a/plans/initial-implementation/PLAN.md b/plans/initial-implementation/PLAN.md
index 45307c8..07f0c40 100644
--- a/plans/initial-implementation/PLAN.md
+++ b/plans/initial-implementation/PLAN.md
@@ -63,7 +63,7 @@ parameter configurable.
| Phase | Domain | Status | Review | Build | Committed |
|---|---|---|---|---|---|
| Phase 0: Scraping spike | backend | ✅ Done | ⚠️ Pass with notes (Sonnet) | ⏭️ N/A (research) | ✅ 070e34b |
-| Phase 1: Solution + Domain | backend | ✅ Done | ⬜ | ✅ Build OK | ⬜ |
+| Phase 1: Solution + Domain | backend | ✅ Done | ⚠️ Pass with notes (Sonnet) | ✅ Build OK + 96/96 Domain tests | ✅ 61114ea |
| Phase 2: Storage | backend | ⬜ Not Started | ⬜ | ⏭️ Big Bang | ⬜ |
| Phase 3: Scraping | backend | ⬜ Not Started | ⬜ | ⏭️ Big Bang | ⬜ |
| Phase 4: Application + Workers | backend | ⬜ Not Started | ⬜ | ⏭️ Big Bang | ⬜ |
diff --git a/src/Marathon.UI/Component1.razor b/src/Marathon.UI/Component1.razor
deleted file mode 100644
index 925ae9b..0000000
--- a/src/Marathon.UI/Component1.razor
+++ /dev/null
@@ -1,3 +0,0 @@
-
- This component is defined in the Marathon.UI library.
-
diff --git a/src/Marathon.UI/Component1.razor.css b/src/Marathon.UI/Component1.razor.css
deleted file mode 100644
index c6afca4..0000000
--- a/src/Marathon.UI/Component1.razor.css
+++ /dev/null
@@ -1,6 +0,0 @@
-.my-component {
- border: 2px dashed red;
- padding: 1em;
- margin: 1em 0;
- background-image: url('background.png');
-}
diff --git a/src/Marathon.UI/ExampleJsInterop.cs b/src/Marathon.UI/ExampleJsInterop.cs
deleted file mode 100644
index 6906217..0000000
--- a/src/Marathon.UI/ExampleJsInterop.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using Microsoft.JSInterop;
-
-namespace Marathon.UI;
-
-// This class provides an example of how JavaScript functionality can be wrapped
-// in a .NET class for easy consumption. The associated JavaScript module is
-// loaded on demand when first needed.
-//
-// This class can be registered as scoped DI service and then injected into Blazor
-// components for use.
-
-public class ExampleJsInterop : IAsyncDisposable
-{
- private readonly Lazy> moduleTask;
-
- public ExampleJsInterop(IJSRuntime jsRuntime)
- {
- moduleTask = new (() => jsRuntime.InvokeAsync(
- "import", "./_content/Marathon.UI/exampleJsInterop.js").AsTask());
- }
-
- public async ValueTask Prompt(string message)
- {
- var module = await moduleTask.Value;
- return await module.InvokeAsync("showPrompt", message);
- }
-
- public async ValueTask DisposeAsync()
- {
- if (moduleTask.IsValueCreated)
- {
- var module = await moduleTask.Value;
- await module.DisposeAsync();
- }
- }
-}
diff --git a/src/Marathon.UI/wwwroot/background.png b/src/Marathon.UI/wwwroot/background.png
deleted file mode 100644
index e15a3bd..0000000
Binary files a/src/Marathon.UI/wwwroot/background.png and /dev/null differ
diff --git a/src/Marathon.UI/wwwroot/exampleJsInterop.js b/src/Marathon.UI/wwwroot/exampleJsInterop.js
deleted file mode 100644
index ea8d76a..0000000
--- a/src/Marathon.UI/wwwroot/exampleJsInterop.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// This is a JavaScript module that is loaded on demand. It can export any number of
-// functions, and may import other JavaScript modules if required.
-
-export function showPrompt(message) {
- return prompt(message, 'Type anything here');
-}