 ;; TODO: nouns do not need {:essere false}
 (ns babel.italiano.lexicon
-  (:refer-clojure :exclude [get-in merge])
+  (:refer-clojure :exclude [get-in])
   (:require
    [babel.encyclopedia :refer [sem-impl]]
    [babel.lexicon :refer [universals]]
+
+   ;; TODO: use dag_unify/unifyc instead:
+   ;; deprecate lexiconfn/unify.
    [babel.lexiconfn :refer [compile-lex if-then constrain-vals-if
                             filter-vals
                             map-function-on-map-vals
-                            rewrite-keys unify]] ;; TODO: use dag_unify/unifyc instead:
-   ;; deprecate lexiconfn/unify.
+                            rewrite-keys unify]]
 
    #?(:clj [clojure.tools.logging :as log])
    #?(:cljs [babel.logjs :as log]) 
    [babel.italiano.morphology :refer [exception-generator italian-specific-rules phonize]]
-   [babel.italiano.pos :refer [adjective agreement-noun cat-of-pronoun
-                               common-noun comparative countable-noun determiner
-                               drinkable-noun feminine-noun intransitive intransitivize
-                               intransitive-unspecified-obj
-                               masculine-noun non-comparative-adjective
-                               noun pronoun-acc pronoun-reflexive sentential-adverb
-                               transitive transitivize verb-aux verb-subjective]]
-   [dag_unify.core :refer [fail? get-in merge strip-refs]]))
+   [babel.italiano.pos :as ipos]
+   [dag_unify.core :refer [fail? get-in strip-refs]]))
 
 (def analyze-lexemes false)
 
 (def lexicon-source
-  {"Luisa"
+  (let [adjective ipos/adjective
+        agreement-noun ipos/agreement-noun 
+        cat-of-pronoun ipos/cat-of-pronoun
+        common-noun ipos/common-noun
+        comparative ipos/comparative
+        countable-noun ipos/countable-noun
+        determiner ipos/determiner
+        intransitive ipos/intransitive
+        intransitive-unspecified-obj ipos/intransitive-unspecified-obj
+        masculine-noun ipos/masculine-noun
+        non-comparative-adjective ipos/non-comparative-adjective
+        preposition (let [shared (atom :top)]
+                      {:synsem {:sem {:obj shared}
+                                :subcat {:1 {:sem shared}}}})
+        pronoun-acc ipos/pronoun-acc
+        pronoun-reflexive ipos/pronoun-reflexive
+        sentential-adverb ipos/sentential-adverb
+        transitive ipos/transitive
+        verb-aux ipos/verb-aux
+        verb-subjective ipos/verb-subjective]
+    
+    {"Luisa"
    {:synsem {:sem {:pred :luisa
                    :human true}
              :agr {:number :sing

                                :number :sing}
                          :sem {:pred :lei} ;; note: we don't specify human=true (english "it").
                          :subcat '()}}]
     [(unify common
             {:synsem {:sem {:human false}}})
      (unify common
             {:synsem {:sem {:human true}}})])
   "leggere"
   {:italiano {:passato "letto"}
    :synsem {:cat :verb

   "cittadino" {:synsem {:cat :adjective
                         :sem {:pred :local}}}

     "colpire" (let [common {:italiano {:boot-stem1 "colpisc"}}]
                 [{:unify [common]
                   :synsem {:cat :verb
                            :sem {:pred :hit}}}
                  {:unify [common]
                   :synsem {:cat :verb
                            :sem {:pred :strike}}}])
   "cominciare"
   [{:synsem {:cat :verb
              :essere false
