diff --git a/MoonlightServers.ApiServer/Services/NodeBootService.cs b/MoonlightServers.ApiServer/Services/NodeBootService.cs
deleted file mode 100644
index ec77091..0000000
--- a/MoonlightServers.ApiServer/Services/NodeBootService.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using Microsoft.Extensions.Hosting;
-
-namespace MoonlightServers.ApiServer.Services;
-
-public class NodeBootService : IHostedLifecycleService
-{
- public async Task StartedAsync(CancellationToken cancellationToken)
- {
- // TODO: Add node boot calls here
- }
-
- #region Unused
-
- public Task StartAsync(CancellationToken cancellationToken)
- => Task.CompletedTask;
-
- public Task StopAsync(CancellationToken cancellationToken)
- => Task.CompletedTask;
-
- public Task StartingAsync(CancellationToken cancellationToken)
- => Task.CompletedTask;
-
- public Task StoppedAsync(CancellationToken cancellationToken)
- => Task.CompletedTask;
-
- public Task StoppingAsync(CancellationToken cancellationToken)
- => Task.CompletedTask;
-
- #endregion
-}
\ No newline at end of file
diff --git a/MoonlightServers.Daemon/MoonlightServers.Daemon.csproj b/MoonlightServers.Daemon/MoonlightServers.Daemon.csproj
index b129cad..bcca05e 100644
--- a/MoonlightServers.Daemon/MoonlightServers.Daemon.csproj
+++ b/MoonlightServers.Daemon/MoonlightServers.Daemon.csproj
@@ -9,12 +9,13 @@
-
-
-
+
+
+
+
diff --git a/MoonlightServers.Daemon/ServerSys/Abstractions/IConsole.cs b/MoonlightServers.Daemon/ServerSys/Abstractions/IConsole.cs
new file mode 100644
index 0000000..6905e31
--- /dev/null
+++ b/MoonlightServers.Daemon/ServerSys/Abstractions/IConsole.cs
@@ -0,0 +1,16 @@
+namespace MoonlightServers.Daemon.ServerSys.Abstractions;
+
+public interface IConsole : IServerComponent
+{
+ public IAsyncObservable OnOutput { get; }
+ public IAsyncObservable OnInput { get; }
+
+ public Task AttachToRuntime();
+ public Task AttachToInstallation();
+
+ public Task WriteToOutput(string content);
+ public Task WriteToInput(string content);
+
+ public Task ClearOutput();
+ public string[] GetOutput();
+}
\ No newline at end of file
diff --git a/MoonlightServers.Daemon/ServerSys/Abstractions/IFileSystem.cs b/MoonlightServers.Daemon/ServerSys/Abstractions/IFileSystem.cs
new file mode 100644
index 0000000..419ec53
--- /dev/null
+++ b/MoonlightServers.Daemon/ServerSys/Abstractions/IFileSystem.cs
@@ -0,0 +1,14 @@
+namespace MoonlightServers.Daemon.ServerSys.Abstractions;
+
+public interface IFileSystem : IServerComponent
+{
+ public bool IsMounted { get; }
+ public bool Exists { get; }
+
+ public Task Create();
+ public Task Mount();
+ public Task Unmount();
+ public Task Delete();
+
+ public string GetExternalPath();
+}
\ No newline at end of file
diff --git a/MoonlightServers.Daemon/ServerSys/Abstractions/IInstaller.cs b/MoonlightServers.Daemon/ServerSys/Abstractions/IInstaller.cs
new file mode 100644
index 0000000..603f435
--- /dev/null
+++ b/MoonlightServers.Daemon/ServerSys/Abstractions/IInstaller.cs
@@ -0,0 +1,12 @@
+namespace MoonlightServers.Daemon.ServerSys.Abstractions;
+
+public interface IInstaller : IServerComponent
+{
+ public IAsyncObservable