     @meteor_interval = 0.3
     @next_meteor_at = @meteor_interval
 
+    @star_interval = 0.1
+    @next_star_at = @star_interval
+
+    @garbage_interval = 10
+    @next_garbage_at = @garbage_interval
+
     @score = 0
 
-  garbage: =>
+  start: ->
+    @engine.on('draw', @draw)
+    @engine.on('update', @update)
+    @engine.start()
+
+  garbageCollect: ->
     @stars = (star for star in @stars when not star.gone)
+    @meteors = (meteor for meteor in @meteors when not meteor.gone)
 
-  createStar: =>
+  createStar: ->
     sprite = new Sprite @img_star[randInt(0, 1)],
       batch: @batch
       pos: new Vec2d(@engine.size.x, randInt(0, @engine.size.y))

      pos: new Vec2d(@engine.size.x, randInt(0, @engine.size.y))
    obj = new PhysicsObject(sprite, new Vec2d(-600 + Math.random() * 400, -200 + Math.random() * 400))
    @meteors.push(obj)

  start: ->
    @engine.on('draw', @draw)
    @engine.on('update', @update)
    setInterval(@createStar, 0.1 * 1000)
    setInterval(@garbage, 10 * 1000)
    @engine.start()

  update: (dt) =>
    if @had_game_over


  delete: ->
    @gone = true
    @sprite?.delete()
    @sprite = null

class Game
  constructor: (@engine) ->
