 
 (defn create-mirror [l]
   "Create a list of ints, break into chunks of 5 and convert those into mirrored chunks so that [0 1 2 3 4] becomes [0 1 2 1 0] and then flatten it all back out"
-  (let [h (take 15 l)
-        t (reverse (take 10 l))
-        f (partition 5 (flatten (cons h t)))
+  (let [t (reverse (take 5 l))
+        f (partition 5 (flatten (cons l t)))
         m (map #(flatten (cons (take 3 %) (reverse (take 2 %)))) f)]
     (flatten m)))
 
 (defn convert-string [s]
+  "Turn the hash string into a collections of integers (0-255)"
   (-> s
       sha1
       to-pairs
       to-ints))
 
 (defn get-svg [id]
+  "SVG.js converts an SVG to 100% x 100% on grabbing the DOM element so we force it back to its original dimensions and pass them back with the element"
   (let [d (.getElementById js/document id)
-        w (.getAttribute d "width")
-        h (.getAttribute d "height")
+        w (js/parseInt (.getAttribute d "width") 10)
+        h (js/parseInt (.getAttribute d "height") 10)
         p (js/SVG id)]
     (.spof p)
     (.attr p "width" w)

        xoffset (/ (* rwidth .1) 2) ; amount to offset the dots on x/y
        roffset (/ (* width .1) 12)
        cwidth (Math/floor (/ width amt)) ; circle width
        crad (- (/ cwidth 2) roffset) ; circle radius
        cxs (mapv #(* cwidth %)
                  (drop 1 (take (+ 1 amt) (range)))) ; vector of x coords
        ]

  (sort (mapv #(Math/floor (* 1.411 %)) l))) ;; convert 0-255 to 0-360

(defn find-hues [ints]
  "Add up the first 3 and last 3 integers of the last 5 to generate a start and end range for the hues (0-255)"
  (let [remains (drop 15 ints)
        h (take 3 remains)
        t (drop 2 remains)]
    (vector (mod (apply + h) 255) (mod (apply + t) 255))))

(defn get-svg-attrs [p]
  "Use the width and height of the SVG object to calculate the x,y positions for all the circles and their radii"
  (let [{svg :svg rwidth :width rheight :height} p
        attr (.attr svg)
        amt 5
        total (* amt amt)
