 (defmacro describe [& decl]
   (let [[sym decl] (get-arg symbol? decl)
 	[doc decl] (get-arg string? decl)
-	[opts body] (get-options decl)
+	[opts body] (get-arg map? decl)
 	children (vec body)
 	metadata (merge (meta &form) {:doc doc} opts)]
     `(test-group ~children ~metadata)))
 
 (defmacro given [& decl]
   (let [[doc decl] (get-arg string? decl)
-	[opts decl] (get-options decl)
+	[opts decl] (get-arg map? decl)
 	[bindings body] (get-arg vector? decl)
 	children (vec body)
 	metadata (merge (meta &form) {:doc doc} opts)]


(defmacro using [& decl]
  (let [[doc decl] (get-arg string? decl)
	[opts decl] (get-options decl)
	[bindings body] (get-arg vector? decl)
	children (vec body)
	metadata (merge (meta &form) {:doc doc} opts)]

(defmacro it [& decl]
  (let [[sym decl] (get-arg symbol? decl)
	[doc decl] (get-arg string? decl)
	[opts body] (get-arg map? decl)
	metadata (merge (meta &form) {:doc doc} opts)]
    `(test-case ~(find-locals &env)
		(fn ~(find-local-binding-forms &env) ~@body) ~metadata)))
