                  ::submitter-email ::submitter-name
                  ::renew-indefinitely]
            :opt [::procunciation-hints]))
+
+(defn first-name [full-name]
+  ; We likely need a dictionary for stop-words like "Ms."
+  (first (split full-name #"\s+")) )
 
 ; this is a bit brittle - based on the structure of the form at some point in time
 (defn row-to-held-person [[timestamp name-for-altar _ pronunciation your-name 

                  (if group "entry.628312063=YES,+this+is+a+group")
                  (str "entry.552838120=" submitter-name)
                  (str "entry.681476151=" submitter-email)
                  (if renew-indefinitely "entry.1548017252=Yes,+please")])]

    [:a {:href custom-url} name-altar]
  ))

       ; The logic is a little complex
       ; If we lack a public name, we propose one - if it's a group, we just
       ; use the full text, otherwise we use the first word of the altar name.
       ::held-name-public (if (empty? name-public)
                            (if processed-group
                              name-for-altar
                              (first-name name-for-altar))
                            name-public)
       ; ::is-group-or-class is-group?
       ::submitter-email (trim (lower-case (str your-email)))
       ::submitter-name (trim (str your-name)) })
      ; And the optional field
      (when-not (empty? pronunciation) {::procunciation-hints pronunciation}) ))

