    _ jacoco-agent-args VAL str"--jacoco_agent_args"
    _ jacoco-exec VAL str "--jacoco_exec"
 
-   _ modules MODULES edn "modules map"
+   _ services SERVICES edn "services map, keys :service, :port"
 
    s servlet bool "servlet app DEPRECATED"
    v verbose bool "verbose"]
 
   (boot/with-pre-wrap [fileset]
-    (let [appengine-edn-fs (->> fileset
-                                boot/input-files
-                                (boot/by-name [appengine-edn]))
-
-          appengine-edn-f (condp = (count appengine-edn-fs)
-                            0 (throw (Exception. appengine-edn " file not found"))
-                            1 (first appengine-edn-fs)
-                            (throw (Exception. (str "Only one " appengine-edn " file allowed"))))
-
-          appengine-config-map (-> (boot/tmp-file appengine-edn-f) slurp read-string)
-
-
-          ;; (println "*OPTS*: " *opts*)
+    (let [;; (println "*OPTS*: " *opts*)
           args (->args *opts*)
           ;; _ (println "ARGS: " args)
           ;; jargs (into-array String (conj jargs "build/exploded-app"))
 
-          target-dir (if unit-test "target/default" "target") ;; (get-target-dir fileset servlet))
+          ;;target-dir (if unit-test "target/default" "target") ;; (get-target-dir fileset servlet))
           #_(if servlet "target"
                                     (if (-> appengine-config-map :services)
                                       "target/default"

   _ allow-remote-shutdown bool "--allow_remote_shutdown"
   a java-agent bool "use javaagaent (default: false).\n\t\tCAVEAT: setting to true may result in a dramatic increase in servlet startup time; setting false removes some security checks" ;; --no_java_agent

   ;; Kickstart.java
   _ generate-war bool "--generate_war"
   _ generated-war-dir PATH str "Set the directory where generated files are created."
   _ jvm-flags FLAG #{str} "--jvm_flags"

          _ (if (> (count default-mod) 1)
              (throw (Exception. "Only one default module allowed" (count default-mod))))

          ;; FIXME: get service name from config/appengine.edn for each service?
          service-ports (remove nil?
                            (into [] (map #(if (:name %)
                                             (str "--jvm_flag=-Dcom.google.appengine.devappserver_module."
                                                  (:name %)
                                                  ".port="
                                                  (str (:port %)))
                                             nil)
                                          services)))
                            ;; modules))

          wardirs (remove nil?
                          (into [] (map #(if (:wardir %)
                                           (.getAbsolutePath (io/file (:wardir %)))
                                           nil)
                                          services)))

          _ (println "WARDIRS: " wardirs)

          http-port (or http-port (if-let [p (:port (first default-mod))] p nil))
          _ (println "HTTP-PORT: " http-port)

          jvm-flags (for [flag jvm-flags] (str "--jvm_flag=" flag))
          ;;war-dirs (for [wardir wardirs] (.getAbsolutePath (io/file wardir)))

          jargs (concat ["com.google.appengine.tools.development.DevAppServerMain"
                         (str "--sdk_root=" (:sdk-root config-map))
                         ;; "--jvm_flag=-Dappengine.fullscan.seconds=1"
                         ]
                        service-ports
                        jvm-flags
                        (if disable-restricted-check ["--disable_restricted_check"])
                        ;; (if (not java-agent) ["--no_java_agent"])
                        (if http-port [(str "--port=" http-port)])
                        (if http-address [(str "--address=" http-address)])
                        wardirs)
          jargs (into-array String jargs)]

      (if verbose
