   (println @penn-fitness-cases)
   (println ";;******************************"))
 
+(defn cycle-to-longest
+  [& sequences]
+  (let [max-count (apply max (map count sequences))]
+    (vec (apply concat (map #(take max-count (cycle %)) sequences)))))
+
 (def penn-atom-generators
-  (vec (concat (distinct (mapv :target (:all-train @penn-fitness-cases))) ;; classes, for output
-               (list (tag-instruction-erc [:exec :integer :float :boolean :string] 1000)
-                     (tagged-instruction-erc 1000)
-                     (fn [] (lrand-int 1000))
-                     (fn [] (lrand 1)))
-               (for [n (map inc 
-                            (range (count (:inputs (first (:train @penn-fitness-cases))))))]
-                 (symbol (str "in" n)))
-               (registered-for-stacks [:exec :integer :float :boolean :string]))))
+  (cycle-to-longest (concat (distinct (mapv :target (:all-train @penn-fitness-cases))) ;; classes, for output
+                            (list (tag-instruction-erc [:exec :integer :float :boolean :string] 1000)
+                                  (tagged-instruction-erc 1000)
+                                  (fn [] (lrand-int 1000))
+                                  (fn [] (lrand 1))))
+                    (for [n (map inc 
+                                 (range (count (:inputs (first (:train @penn-fitness-cases))))))]
+                      (symbol (str "in" n)))
+                    (registered-for-stacks [:exec :integer :float :boolean :string])))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Main call

   ;:print-behavioral-diversity true ;; requires maintaining @population-behaviors 
   :report-simplifications 0
   :final-report-simplifications 5000
   :age-mediated-parent-selection [0.05 0.5]
   :age-combining-function :proportionate 
   ;:age-combining-function :first-reuse 
   ;:autoconstructive true
   ;:autoconstructive-genome-instructions :uniform

                      (count best-test-errors))))(flush)
    (printf "\nTest RMSE: %.4f" (float (rmse best-test-errors)))(flush)
    (printf "\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n")(flush)
    (when (and resampling (< training-proportion 1))
      (println "Resampling training cases...")
      (swap! penn-fitness-cases 
             #(assoc % :train (vec (take (count (:train %))
