         context.clearRect(0, 0, canvas.width, canvas.height)
 
         return this
-      
+
+      clearRect: (x, y, width, height) ->
+        context.clearRect(x, y, width, height)
+
+        return this
+
       context: ->
         context
       
       element: ->
         canvas
+        
+      globalAlpha: (newVal) ->
+        if newVal?
+          context.globalAlpha = newVal
+          return this
+        else
+          context.globalAlpha
+          
+      compositeOperation: (newVal) ->
+        if newVal?
+          context.globalCompositeOperation = newVal
+          return this
+        else
+          context.globalCompositeOperation
       
       createLinearGradient: (x0, y0, x1, y1) ->
         context.createLinearGradient(x0, y0, x1, y1)
       
       createRadialGradient: (x0, y0, r0, x1, y1, r1) ->
         context.createRadialGradient(x0, y0, r0, x1, y1, r1)
-      
+        
+      buildRadialGradient: (c1, c2, stops) ->
+        gradient = context.createRadialGradient(c1.x, c1.y, c1.radius, c2.x, c2.y, c2.radius)
+
+        for position, color of stops
+          gradient.addColorStop(position, color)
+
+        return gradient
+
       createPattern: (image, repitition) ->
         context.createPattern(image, repitition)
 

          block(this)
        finally
          context.restore()
        

        return this


        if color
          if color.channels
            context.fillStyle = color.toString()
          else
            context.fillStyle = color
          
