    mutated it will be replaced with a random instruction."
   [ind {:keys [uniform-mutation-rate maintain-ancestors atom-generators]
         :as argmap}]
-  (let [uniform-mutation-rate (number uniform-mutation-rate)
+  (let [uniform-mutation-rate (random-element-or-thing uniform-mutation-rate)
         instruction-mutator (fn [token]
                               (assoc token
                                 :instruction

  [parent1 parent2
   {:keys [uniform-combination-rate maintain-ancestors]
    :as argmap}]
  (let [combination-rate (number uniform-combination-rate)
        new-genome (vec
                    (apply concat
                           (mapv (fn [g1 g2]

        :as argmap}]
  (if (not (some #{:close} epigenetic-markers))
    ind
    (let [uniform-close-mutation-rate (random-element-or-thing uniform-close-mutation-rate)
          close-increment-rate (random-element-or-thing close-increment-rate)
          close-mutator (fn [instr-map]
                          (let [closes (get instr-map :close 0)]
                            (assoc instr-map :close
