 
 (defn generate-stats
   ""
-  [language]
-  (let [words (corpus/load-wordlist language)
-        pseudo-syllable-freqs (pseudo-syllable-freqs language words)
-        transitions (sound-transitions language words)
+  [& args]
+  (let [words (apply corpus/load-wordlist args)
+        pseudo-syllable-freqs (apply pseudo-syllable-freqs (cons words args))
+        transitions (apply sound-transitions (cons words args))
         initial (positional-sound-transition-freqs :initial transitions)
         medial (positional-sound-transition-freqs :medial transitions)
         final (positional-sound-transition-freqs :final transitions)]

         :frequencies final
         :percent-ranges (util/frequencies->percent-ranges final)}}}))

(defn regen-stats
  ([]
    (doall
      (for [language supported]
        (do
          (corpus/dump :stats language (generate-stats language))
          {language :ok}))))
  ([language]
    (corpus/dump :stats language (generate-stats language))))

(defn stats
  [language]
  (corpus/undump :stats language))

(defn -main
  [& args]

  Create a lookup of key/value pairs where the key is the number
  pseudo-syllables and the associated value is the number of times the given
  pseudo-syllable occurs."
  [words & args]
  (frequencies (apply pseudo-syllable-counts (cons words args))))

(defn sound-transitions
  ""
  [words & args]
  (map (comp #(remove nil? %)
             #(mapcat rest %)
             #(re-seq (re-pattern (apply corpus/re-sound-transitions args)) %))
       words))

(defn flat-sound-transitions
  [words & args]
  (flatten (apply sound-transitions (cons words args))))

(defn positional-sound-transitions
  [position transitions]
