     draw = ->
       return unless I.canvas
 
-      if I.clear
-        I.canvas.clear()
-      else if I.backgroundColor
-        I.canvas.fill(I.backgroundColor)
+      self.trigger "beforeDraw", canvas
 
       I.canvas.withTransform I.cameraTransform, (canvas) ->
-        self.trigger "beforeDraw", canvas
+
 
         if I.zSort
           drawObjects = I.objects.copy().sort (a, b) ->

      draw: draw
    }

    self.attrAccessor "ambientLight", "backgroundColor", "cameraTransform", "clear"
    self.include Bindable

    defaultModules = ["Keyboard", "Delay", "SaveState", "Selector", "Collision"]
    modules = defaultModules.concat(I.includedModules)
    modules = modules.without([].concat(I.excludedModules))


    FPS: 30
    age: 0
    ambientLight: 1
    cameraTransform: Matrix.IDENTITY
    excludedModules: []
    includedModules: []
    paused: false
