                                :subcat []}}
                      {:synsem {:cat :verb
                                :sem {:tense :present
-                                     :aspect :simple}}}
-                     ]
-        ]
-    
+                                     :aspect :simple}}}]]
     (repeatedly
      #(do
         (println
-         (let [chosen-spec
-               (unify (first (shuffle specs))
-                      (first (shuffle tense-specs)))]
+         (let [tense-spec (first (shuffle tense-specs))
+               tense-spec
+               (let [result (unify spec tense-spec)]
+                 (if (not (= :fail result))
+                   result
+                   spec))
+
+               root-spec
+               (let [example-verbs #{"arrabbiarsi" "chiamarsi" "dormire" "fermarsi" "parlare" "sedersi"} 
+
+                     unif
+                     (unify spec
+                            {:root {:italiano {:italiano
+                                               (first (shuffle example-verbs))}}})]
+                 (if (not (= :fail unif))
+                   unif
+                   spec))
+
+               chosen-spec (unify root-spec tense-spec)]
            (let [generate-with-grammar-set
                  (rule-matcher-reducer chosen-spec)
                  grammar

                         (:grammar model))]
             (morph (binding [babel.generate/println? false
                              babel.generate/truncate? false
                              babel.generate/index-fn (create-index-fn verb-set grammar)
                              babel.generate/lexical-filter
                              (fn [lexeme] (= false (u/get-in lexeme [:italiano :exception] false)))
                              babel.generate/grammar grammar]

          "vp-pronoun-nonphrasal"}

        create-index-fn
        (fn [grammar]
          (let [verbcoach-pronouns
                (fn [v]
                  (or
