diff --git a/flake.lock b/flake.lock
index 2455dd5..b44755a 100644
--- a/flake.lock
+++ b/flake.lock
@@ -118,11 +118,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1713479280,
-        "narHash": "sha256-e8+ZgayVccw6h8ay15jM9hXh+sjZDc1XdBGLn3pdYdc=",
+        "lastModified": 1713566308,
+        "narHash": "sha256-7Y91t8pheIzjJveUMAPyeh5NOq5F49Nq4Hl2532QpJs=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "ff1c3646541316258b1ca64e9b25d4c9cca8e587",
+        "rev": "057117a401a34259c9615ce62218aea7afdee4d3",
         "type": "github"
       },
       "original": {
@@ -154,6 +154,22 @@
         "type": "github"
       }
     },
+    "master": {
+      "locked": {
+        "lastModified": 1713590758,
+        "narHash": "sha256-gMZU7ZWEDiiM8/a1UcR79+C46qVoZiVZ+V9XjZFrJzA=",
+        "owner": "akr2002",
+        "repo": "nixpkgs",
+        "rev": "3e5b4b5183a1d8b4bb648d7581aba76b50c31846",
+        "type": "github"
+      },
+      "original": {
+        "owner": "akr2002",
+        "ref": "master",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
     "nix-darwin": {
       "inputs": {
         "nixpkgs": [
@@ -178,11 +194,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1713297878,
-        "narHash": "sha256-hOkzkhLT59wR8VaMbh1ESjtZLbGi+XNaBN6h49SPqEc=",
+        "lastModified": 1713537308,
+        "narHash": "sha256-XtTSSIB2DA6tOv+l0FhvfDMiyCmhoRbNB+0SeInZkbk=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "66adc1e47f8784803f2deb6cacd5e07264ec2d5c",
+        "rev": "5c24cf2f0a12ad855f444c30b2421d044120c66f",
         "type": "github"
       },
       "original": {
@@ -306,6 +322,7 @@
     "root": {
       "inputs": {
         "home-manager": "home-manager",
+        "master": "master",
         "nixpkgs": "nixpkgs",
         "nv": "nv",
         "nyaa": "nyaa"
diff --git a/flake.nix b/flake.nix
index 3905ca1..f7856c2 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,14 +1,11 @@
 {
   inputs = {
     nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+    master.url = "github:akr2002/nixpkgs/master";
     home-manager = {
       url = "github:nix-community/home-manager/master";
       inputs.nixpkgs.follows = "nixpkgs";
     };
-    #nixvim = {
-    #  url = "github:nix-community/nixvim";
-    #  inputs.nixpkgs.follows = "nixpkgs";
-    #};
     nv = {
       url = "github:akr2002/nv";
       inputs.nixpkgs.follows = "nixpkgs";
@@ -24,11 +21,20 @@
     nixpkgs,
     ...
   } @ inputs: let
-    system = "x86_64-linux";
-    pkgs = nixpkgs.legacyPackages.${system};
+    inherit (self) outputs;
+    systems = [
+      "aarch64-linux"
+      "i686-linux"
+      "x86_64-linux"
+      "aarch64-darwin"
+      "x86_64-darwin"
+    ];
+    forAllSystems = nixpkgs.lib.genAttrs systems;
   in {
+    overlays = import ./overlays {inherit inputs;};
+
     nixosConfigurations.bridge = nixpkgs.lib.nixosSystem {
-      specialArgs = {inherit inputs;};
+      specialArgs = {inherit inputs outputs;};
       modules = [
         ./hosts/default/configuration.nix
         inputs.home-manager.nixosModules.default
diff --git a/hosts/default/configuration.nix b/hosts/default/configuration.nix
index 2590e58..3edde0a 100644
--- a/hosts/default/configuration.nix
+++ b/hosts/default/configuration.nix
@@ -3,6 +3,7 @@
   pkgs,
   lib,
   inputs,
+  outputs,
   ...
 }: {
   imports = [
@@ -11,6 +12,10 @@
     ../../modules/nixos/default.nix
     inputs.home-manager.nixosModules.default
   ];
+
+  nixpkgs.overlays = [
+    outputs.overlays.master-packages
+  ];
   # Set your time zone.
   time.timeZone = "Asia/Kolkata";
 
diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix
index 8545aa2..2bbd114 100644
--- a/modules/nixos/default.nix
+++ b/modules/nixos/default.nix
@@ -30,8 +30,6 @@
     };
   };
 
-  nixpkgs.config.allowUnfree = true;
-
   services = {
     gvfs.enable = true;
     printing.enable = true;
diff --git a/modules/nixos/packages/default.nix b/modules/nixos/packages/default.nix
index fca7665..0a12c67 100644
--- a/modules/nixos/packages/default.nix
+++ b/modules/nixos/packages/default.nix
@@ -1,10 +1,14 @@
 {pkgs, ...}: {
-  environment.systemPackages = with pkgs; [
-    vim
-    wget
-    git
-    nh
-    nix-output-monitor
-    nvd
-  ];
+  environment.systemPackages =
+    (with pkgs; [
+      vim
+      wget
+      git
+      nh
+      nix-output-monitor
+      nvd
+    ])
+    ++ (with pkgs.masterPkgs; [
+      ollama
+    ]);
 }
diff --git a/overlays/default.nix b/overlays/default.nix
new file mode 100644
index 0000000..42ea207
--- /dev/null
+++ b/overlays/default.nix
@@ -0,0 +1,8 @@
+{inputs, ...}: {
+  master-packages = final: _prev: {
+    masterPkgs = import inputs.master {
+      system = final.system;
+      config.allowUnfree = true;
+    };
+  };
+}