     $(document).unbind "keydown"
 
   adjust_stage: (offset) ->
-    @current_stage += offset
+    @current_stage = (@current_stage + offset + @max_stage) % @max_stage
+    @current_stage = @max_stage if @current_stage == 0
     @game.set_config('current_stage', @current_stage)
     @update_stage_label()
 
   init_stage_nodes: () ->
     # bg
-    # @layer.add(new Kinetic.Rect({
-    #   x: 0,
-    #   y: 0,
-    #   fill: "#999",
-    #   width: 600,
-    #   height: 520
-    # }))
+    @layer.add(new Kinetic.Rect({
+      x: 0,
+      y: 0,
+      fill: "#999",
+      width: 600,
+      height: 520
+    }))
     # label text
     @stage_label = new Kinetic.Text({
-      x: 210,
+      x: 250,
       y: 230,
       fontSize: 22,
       fontStyle: "bold",
       fontFamily: "Courier",
       text: "STAGE #{@current_stage}",
-      fill: "#fff"
+      fill: "#333"
     })
     @layer.add(@stage_label)
 

class StageScene extends Scene
  constructor: (@game) ->
    super(@game)
    @init_stage_nodes()
    window.ss = this

  start: () ->
    super()

class Scene
  constructor: (@game) ->
    @layer = new Kinetic.Layer()
    @game.canvas.add(@layer)
    # Kinetic bug fix start
    sprite = (new Kinetic.Sprite({
      x: -99,
      y: -99,
      image: document.getElementById('tank_sprite'),
      animation: 'brick',
      animations: Animations.terrains,
      frameRate: Animations.rate('brick'),
      index: 0
    }))
    @layer.add(sprite)
    sprite.start()
    # Kinetic bug fix end
    @layer.hide()

  start: () -> @layer.show()
  stop: () -> @layer.hide()

class WelcomeScene extends Scene
  constructor: (@game) ->
