   "Returns the individual with each element of its genome possibly preceded or followed by
   a new gene, with probability given by uniform-addition-rate."
   [ind {:keys [uniform-addition-rate maintain-ancestors atom-generators] :as argmap}]
-  (let [rate (if (number? uniform-addition-rate)
-               uniform-addition-rate
-               (lrand-nth uniform-addition-rate))
+  (let [rate (number uniform-addition-rate)
         new-genome (vec (apply concat
                                (map #(if (< (lrand) rate)
                                       (lshuffle [% 

               epigenetic-markers maintain-ancestors]}]
  (if (not (some #{:silent} epigenetic-markers))
    ind
    (let [silent-mutator (fn [instr-map]
                           (let [silent (get instr-map :silent false)]
                             (assoc instr-map :silent
                                    (if (< (lrand) uniform-silence-mutation-rate)

  [ind {:keys [uniform-mutation-rate uniform-mutation-string-char-change-rate
               maintain-ancestors atom-generators]
        :as argmap}]
  (let [uniform-mutation-rate 
        (number uniform-mutation-rate)
        
        uniform-mutation-string-char-change-rate
        (number uniform-mutation-string-char-change-rate)
        
        string-tweak (fn [st]
                       (apply str (map (fn [c]
                                         (if (< (lrand) uniform-mutation-string-char-change-rate)
                                           (lrand-nth (concat ["\n" "\t"] 
