   (let [r (/ (red color) 255.0)
         g (/ (green color) 255.0)
         b (/ (blue color) 255.0)
+        a (alpha color)
         y (+ (* r  0.29900) (* g  0.58700) (* b  0.11400))
         u (+ (* r -0.14713) (* g -0.28886) (* b  0.43600))
         v (+ (* r  0.61500) (* g -0.51499) (* b -0.10001))]
-    [y u v]))
+    [y u v a]))
 
-(defn yuv->rgb [[y u v]]
+(defn yuv->rgb [[y u v a]]
   "Y'UV (Luma, Chrominance) to RGB Conversion."
   (let [r (* (+ y (* v 1.13983)) 255.0)
         g (* (- y (* u 0.39465) (* v 0.58060)) 255.0)
         b (* (+ y (* u 2.03211)) 255.0)]
-    (coerce [r g b])))
+    (coerce [r g b (or a 1.0)])))
 
 (defn grayscale
   "RGB to greyscale conversion, largely by taking the Luma
    value from Y'UV conversion."
   [color]
-  (let [[y _ _] (map (partial * 255.0) (rgb->yuv color))]
-    (coerce [y y y])))
+  (let [[y _ _ a] (map (partial * 255.0) (rgb->yuv color))]
+    (coerce [y y y a])))
 
 (defn complementary
   "Complimentary color conversion, largely by taking the HSL
    value, and rotating the Hue by 180 degrees, and then converting
    back to RGB."
   [color]
-  (let [[h s l] (rgb->hsl color)]
-    (hsl->rgb [(mod (+ h 180) 360) s l])))+  (let [[h s l a] (rgb->hsl color)]
+    (hsl->rgb [(mod (+ h 180) 360) s l a])))
  (let [r (/ (red color) 255.0)
        g (/ (green color) 255.0)
        b (/ (blue color) 255.0)
        v (max r g b)
        d (- v (min r g b))]
    (if (zero? d)

  (let [r (/ (red color) 255.0)
        g (/ (green color) 255.0)
        b (/ (blue color) 255.0)
        a (alpha color)
        min-val (min r g b)
        max-val (max r g b)
        l (/ (+ max-val min-val) 2.0)]
