diff --git a/arion.nix b/arion.nix
index 44ada78e6686fa549bd099124b394ec809e435d3..49553b8498afdc1deec2c3542a5179ece5e65d35 100644
--- a/arion.nix
+++ b/arion.nix
@@ -1,18 +1,21 @@
+let
+  arion-src' = {pkgs}: pkgs.fetchFromGitHub {
+    owner = "tp-la";
+    repo = "arion";
+    rev = "hack";
+    sha256 = "0wv4wbzzd926qm81h78v10wyhiaayx2jggpb1ijzk118a543sz84";
+  };
+in
 { self ? ./.
 , pkgs ? import ./nixpkgs-2105.nix {}
 , lib ? pkgs.lib
 , includeStorePaths ? false
 , ourpkgs ? import ./nixpkgs-ps.nix {}
-, arion-src ? pkgs.fetchFromGitHub {
-    owner = "tp-la";
-    repo = "arion";
-    rev = "hack";
-    sha256 = "0wv4wbzzd926qm81h78v10wyhiaayx2jggpb1ijzk118a543sz84";
-  }
+, arion-src ? arion-src' { inherit pkgs; }
+, arion-eval ? (import arion-src { inherit pkgs; }).arion.eval
 }: rec {
-  inherit pkgs lib ourpkgs arion-src; 
+  inherit pkgs lib ourpkgs arion-src arion-eval; 
   local-grid = "${self}/morph/grid/local";
-  arion-eval = args@{...}: import "${arion-src}/src/nix/eval-composition.nix" ({ inherit pkgs; } // args);
   arion = arion-eval {
     modules = [
       "${local-grid}/arion-compose.nix"