             (every? group? subgroups)
             (or-nil map? metadata)]
       :post [(group? %)]}
-     (Group. contexts examples nil metadata)))
+     (Group. contexts examples subgroups nil metadata)))
 
 (defmacro example
   "Creates an example function, using current context locals for

        [com.stuartsierra.lazytest.contexts
         :only (context context? with-context find-locals)]))

(defrecord Group [contexts examples])

(defn group?
  "True if x is an example group."

  Option :given is followed by a vector of symbol-expression pairs.
  All examples in the group will run with the symbol bound to the
  state returned by that expression."
  {::subgroup true}
  [& body]
  (let [[docstring body] (get-arg string? body)
        [opts body] (get-options body)
        givens (interleave (firsts (:given opts))
