 
 (s/def ::specification
   (s/cat
-    :name (s/or :string string? :symbol symbol?)
+    :name string?
     :opts (s/* keyword?)
     :body (s/* ::us/any)))
 

   (behavior \"blows up when the moon is full\" ::manual-test)"
  [& args]
  (let [{:keys [name opts body]} (us/conform! ::behavior args)
        typekw (if (contains? opts :manual-test)
                 :manual :behavior)
        prefix (if-cljs &env "cljs.test" "clojure.test")]

       (im/with-reporting {:type :specification :string ~name}
         ~@body))))

(s/def ::behavior (s/cat
                    :name (s/or :str string? :sym symbol?)
                    :opts (s/* keyword?)
                    :body (s/* ::us/any)))
(s/fdef behavior :args ::behavior)

(defmacro behavior
  "Adds a new string to the list of testing contexts.  May be nested,
   but must occur inside a specification. If the behavior is not machine
