 
         callback?(response.headers.get('Location'))
       )
+
+  storeGenera: ->
+    genera = {
+      live: [],
+      dead: [],
+      parts: report.answers?.genus_parts?.selected || []
+    }
+
+    for ape in (report.answers?.live || []) when ape.genus_live?.selected
+      if genera.live.indexOf(ape.genus_live.selected) == -1
+        genera.live.push(ape.genus_live.selected)
+
+    for ape in (report.answers?.dead || []) when ape.genus_dead?.selected
+      if genera.dead.indexOf(ape.genus_dead.selected) == -1
+        genera.dead.push(ape.genus_dead.selected)
+
+    report.genera = genera
+
 
   reportRequest: (path, method, callback) ->
     token = document.getElementsByName("csrf-token")[0].content

  addVisibilityListener: (callback) => @on(VISIBILITY_EVENT, callback)

  saveOrUpdateReport: (callback) =>
    if report.id?
      @reportRequest("/reports/#{report.id}", "PUT", (response) =>
        @setNotification("success", "Report updated")

  report = {
    id: null,
    answers: {},
    state: "in_progress",
    genera: {}
  }

  constructor: ->
