     mixWith$: (other, amount) ->
       amount ||= 0.5
 
-      mixedColors = [@r, @g, @b, @a].zip([other.r, other.g, other.b, other.a]).map (array) ->
+      [@r, @g, @b, @a] = [@r, @g, @b, @a].zip([other.r, other.g, other.b, other.a]).map (array) ->
         (array[0] * amount) + (array[1] * (1 - amount))
 
-      [@r, @g, @b, @a] = mixedColors
+      [@r, @g, @b] = [@r, @g, @b].map (color) ->
+        color.round()
 
       return this 
 


    parsedColor = (parseFloat channel for channel in channels[1..3])
    parsedColor[0] = parsedColor[0]
    parsedColor[3] ||= 1.0

    return hslToRgb(parsedColor)

  hslToRgb = (hsl) ->    
    [h, s, l, a] = (parseFloat(channel) for channel in hsl)

    h /= 360.0
    a ||= 1.0

    r = g = b = null


    return undefined unless channels = rgbParser.exec(colorString)

    parsedColor = (parseFloat channel for channel in channels[1..3])
    parsedColor[3] ||= 1

    return parsedColor

