diff --git a/cwality-maps/Main.hs b/cwality-maps/Main.hs
index 39723f4d019fe569c94ba983ad26785085ee8164..3f383cdb16c0455c55f6dcb9df0c4d130b0b4d95 100644
--- a/cwality-maps/Main.hs
+++ b/cwality-maps/Main.hs
@@ -78,10 +78,11 @@ instance FromHttpApiData MapParams where
 
 -- | actual set of routes: api for json & html + static pages from disk
 type Routes =
-  Capture "map.json" JsonFilename :> Capture "params" MapParams :> Get '[JSON] Tiledmap
-  -- explicitly capture broken json to return 400 instead of looking for files
-  :<|> Capture "map.json" JsonFilename :> CaptureAll "rest" Text :> Get '[JSON] Void
-  :<|> Raw
+  "generate" :> Capture "params" MapParams :>
+    (Capture "map.json" JsonFilename :> Get '[JSON] Tiledmap
+    -- explicitly capture broken json to return 400 instead of looking for files
+    :<|> Capture "map.json" JsonFilename :> CaptureAll "rest" Text :> Get '[JSON] Void
+    :<|> Raw)
 
 
 
@@ -90,8 +91,8 @@ mkMap :: Config True -> Tiledmap -> MapParams -> ([SubstitutionError], Tiledmap)
 mkMap _config basemap params =
   substitute basemap (substs params)
 
-mapHandler :: Config True -> JsonFilename -> MapParams -> Handler Tiledmap
-mapHandler config (JsonFilename mapname) params =
+mapHandler :: MapParams -> Config True -> JsonFilename -> Handler Tiledmap
+mapHandler params config (JsonFilename mapname) =
   case M.lookup mapname (snd $ view template config) of
     Just basemap -> runStdoutLoggingT $
       logWarnN (pretty errors) >> pure tiledmap
@@ -103,7 +104,8 @@ mapHandler config (JsonFilename mapname) params =
 
 -- | Complete set of routes: API + HTML sites
 server :: Config True -> Server Routes
-server config = mapHandler config
+server config params =
+               mapHandler params config
           :<|> (\_ _ -> throwError err400)
           :<|> serveDirectoryWebApp (fst . view template $ config)