diff --git a/lib/systems.nix b/lib/systems.nix
index 656bc20..7e53fba 100644
--- a/lib/systems.nix
+++ b/lib/systems.nix
@@ -160,7 +160,12 @@ rec {
     lib.nixosSystem {
       inherit system;
       specialArgs = {
-        inherit inputs server system;
+        inherit
+          inputs
+          server
+          system
+          src
+          ;
       };
       modules =
         [
@@ -208,7 +213,7 @@ rec {
               inherit inputs src configPath;
               hostname = name;
             }
-            // import configPath { inherit inputs; }
+            // import configPath { inherit inputs src; }
           );
         }
       ) (lib.rad-dev.lsdir path)
diff --git a/modules/microvm-host.nix b/modules/microvm-host.nix
deleted file mode 100644
index 7e8aaed..0000000
--- a/modules/microvm-host.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  config,
-  lib,
-  inputs,
-  ...
-}:
-let
-  cfg = config.rad-dev.microvm-host;
-  inherit (inputs.microvm.nixosModules) microvm;
-in
-{
-  # imports = [microvm.host];
-  options.rad-dev.microvm-host = {
-    enable = lib.mkEnableOption "microvm-host";
-  };
-  config = lib.mkIf cfg.enable {
-    networking.useNetworkd = true;
-    # microvm.shares = [
-    #   {
-    #     tag = "ro-store";
-    #     source = "/nix/store";
-    #     mountPoint = "/nix/.ro-store";
-    #   }
-    # ];
-    #     systemd.tmpfiles.rules = map (vmHost:
-    #   let
-    #     machineId = lib.addresses.machineId.${vmHost};
-    #   in
-    #     # creates a symlink of each MicroVM's journal under the host's /var/log/journal
-    #     "L+ /var/log/journal/${machineId} - - - - /var/lib/microvms/${vmHost}/journal/${machineId}"
-    # ) (builtins.attrNames lib.addresses.machineId);
-  };
-}
diff --git a/modules/opt/default.nix b/modules/opt/default.nix
new file mode 100644
index 0000000..d8147ea
--- /dev/null
+++ b/modules/opt/default.nix
@@ -0,0 +1,5 @@
+{ ... }:
+
+{
+
+}
diff --git a/modules/opt/microvm-host.nix b/modules/opt/microvm-host.nix
new file mode 100644
index 0000000..42c9a0f
--- /dev/null
+++ b/modules/opt/microvm-host.nix
@@ -0,0 +1,41 @@
+{
+  config,
+  lib,
+  inputs,
+  ...
+}:
+let
+  cfg = config.rad-dev.microvm-host;
+  microvm = inputs.microvm.nixosModules;
+in
+{
+  imports = [ microvm.host ];
+  options.rad-dev.microvm-host = {
+    vms = lib.mkOption {
+      type = lib.types.attrset;
+      default = { };
+      description = "A list of VMs to construct on the host";
+    };
+  };
+  config = {
+    networking.useNetworkd = true;
+    microvm.vms = cfg.vms;
+    microvm.shares = [
+      {
+        tag = "ro-store";
+        source = "/nix/store";
+        mountPoint = "/nix/.ro-store";
+      }
+    ];
+
+    # TODO: deprecate this once we have syslog forwarders
+    systemd.tmpfiles.rules = map (
+      vmHost:
+      let
+        machineId = lib.addresses.machineId.${vmHost};
+      in
+      # creates a symlink of each MicroVM's journal under the host's /var/log/journal
+      "L+ /var/log/journal/${machineId} - - - - /var/lib/microvms/${vmHost}/journal/${machineId}"
+    ) (builtins.attrNames lib.addresses.machineId);
+  };
+}
diff --git a/systems/palatine-hill/default.nix b/systems/palatine-hill/default.nix
index 199a7c8..05c0017 100644
--- a/systems/palatine-hill/default.nix
+++ b/systems/palatine-hill/default.nix
@@ -1,4 +1,4 @@
-{ inputs, ... }:
+{ inputs, src, ... }:
 {
   users = [
     "alice"
@@ -6,6 +6,6 @@
   ];
   modules = [
     inputs.attic.nixosModules.atticd
-    inputs.microvm.nixosModules.host
+    (src + "/modules/opt/microvm-host.nix")
   ];
 }
diff --git a/systems/palatine-hill/microvms.nix b/systems/palatine-hill/microvms.nix
index 73fde98..9cad8d2 100644
--- a/systems/palatine-hill/microvms.nix
+++ b/systems/palatine-hill/microvms.nix
@@ -4,7 +4,6 @@
   pkgs,
   ...
 }:
-
 {
-  rad-dev.microvm-host.enable = true;
+  # rad-dev.microvm-host.enable = true;
 }