    [clojure.string :as string]
    [dag_unify.core :refer [fail-path-between get-in strip-refs unifyc]]))
 
-(defonce medium-model (promise))
-(defn medium []
-  (if (realized? medium-model)
-    @medium-model
-    @(do
-       (println (str "creating Italian model..(will be slow the first time).."))
-       (let [result
-             (deliver medium-model (grammar/medium))]
-         (println (str "done."))
-         result))))
+(def medium
+  (grammar/medium))
 
 (defonce np-grammar-model (promise))
 (defn np-grammar []

  "analyze a word: as opposed to parsing which is multi-word."
  ;; TODO: should take a language model, not a lexicon
  ([surface-form]
   (analyze surface-form (:lexicon (medium))))
  ([surface-form lexicon]
   (morph/analyze surface-form lexicon)))


  ([]
   (let [max-total-depth generate/max-depth
         truncate-children true
         model medium]
     (generate {:modified false}
               :max-total-depth max-total-depth
               :truncate-children true
