diff --git a/flake.nix b/flake.nix
index e79abc6..d1b8b77 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,10 +14,21 @@
 		};
 	};
 
-	outputs = inputs: {
+	outputs = { self, nixpkgs, unstable, nur, home-manager, ... }@inputs: {
+
+    # This repo's overlay plus any other overlays you use
+    # If you want to use packages from flakes that are not nixpkgs (such as NUR), add their overlays here.
+    overlays = import ./overlays // {
+			# Third party overlays here
+		};
+
+		overlaysModule = {
+			nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
+		};
+
 		nixosConfigurations = {
 			
-			loft = inputs.nixpkgs.lib.nixosSystem {
+			loft = nixpkgs.lib.nixosSystem {
 				system = "x86_64-linux";
 				modules = [
 					./modules/common.nix
@@ -28,9 +39,10 @@
 				specialArgs = { inherit inputs; };
 			};
 
-			kitchen = inputs.nixpkgs.lib.nixosSystem {
+			kitchen = nixpkgs.lib.nixosSystem {
 				system = "x86_64-linux";
 				modules = [
+					self.overlaysModule
 					./modules/common.nix
 					./modules/containers.nix
 
@@ -42,6 +54,7 @@
 			work = inputs.nixpkgs.lib.nixosSystem {
 				system = "x86_64-linux";
 				modules = [
+					self.overlaysModule
 					./modules/containers.nix
 					./modules/nix.nix
 					./modules/vscode-server.nix
@@ -65,6 +78,8 @@
 						allowUnfree = true;
 					};
 
+					nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
+
 					programs.home-manager.enable = true;
 
 					imports = [
@@ -84,6 +99,8 @@
 						allowUnfree = true;
 					};
 
+					nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
+
 					programs.home-manager.enable = true;
 
 					imports = [
diff --git a/overlays/default.nix b/overlays/default.nix
new file mode 100644
index 0000000..805e147
--- /dev/null
+++ b/overlays/default.nix
@@ -0,0 +1,3 @@
+{
+	paperwm = import ./paperwm;
+}
\ No newline at end of file
diff --git a/overlays/paperwm/default.nix b/overlays/paperwm/default.nix
new file mode 100644
index 0000000..2e1dce1
--- /dev/null
+++ b/overlays/paperwm/default.nix
@@ -0,0 +1,13 @@
+self: super: {
+	gnomeExtensions = super.gnomeExtensions // {
+		paperwm = super.gnomeExtensions.paperwm.overrideDerivation (old: {
+			version = "41.0";
+			src = super.fetchFromGitHub {
+				owner = "PaperWM-community";
+				repo = "PaperWM";
+				rev = "b66aaf13e8f4cdf0e2f9078fb3e75703535b822c";
+				sha256 = "sha256-6AUUu63oWxRw9Wpxe0f7xvt7iilvQfhpAB8SYG4yP8Q=";
+			};
+		});
+	};
+}
\ No newline at end of file
diff --git a/user/overlays/paperwm.nix b/user/overlays/paperwm.nix
deleted file mode 100644
index ee2c3ec..0000000
--- a/user/overlays/paperwm.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-self: super: {
-	gnomeExtensions = super.gnomeExtensions // {
-		paperwm = super.gnomeExtensions.paperwm.overrideDerivation (old: {
-			version = "pre-40.0";
-			src = builtins.fetchGit {
-				url = https://github.com/paperwm/paperwm.git;
-				ref = "next-release";
-			};
-		});
-	};
-}
\ No newline at end of file