diff --git a/nginx.nix b/nginx.nix
index a808c8e..41cc114 100644
--- a/nginx.nix
+++ b/nginx.nix
@@ -71,14 +71,14 @@
     Merge = let
     # builtins.length and count up
         _iterateCompose = services: currentConfig: currentPath: secure: priority: i:
-            if i > builtins.length services
-                then currentConfig
-                else _iterateCompose services (_merge (builtins.elemAt services i) currentConfig currentPath secure priority+i) currentPath secure priority (i+1);
+            if i < builtins.length services
+                then _iterateCompose services (_merge (builtins.elemAt services i) currentConfig currentPath secure priority+i) currentPath secure priority (i+1)
+                else currentConfig;
 
         _iterateMerge = i: current: services:
-            if i > builtins.length services
-                then current
-                else _iterateMerge (i+1) (current++[_merge (builtins.elemAt services i) {} "/" true 1000]) services;
+            if i < builtins.length services
+                then _iterateMerge (i+1) (current++[(_merge (builtins.elemAt services i) {} "/" true 1000)]) services
+                else current;
 
         _merge = service: currentConfig: currentPath: secure: priority:
             if service.type == "hosts"
@@ -164,12 +164,7 @@
     External should only be a port
     Protocol should be TCP or UDP
     */
-    Stream = external: internal: protocol: ''
-        server {
-            listen ${builtins.toString external} ${protocol};
-            proxy_pass ${internal};
-        }
-    '';
+    Stream = external: internal: protocol: { inherit external internal protocol; };
 
     Alias = host: alias: {
         inherit host;
