         weight: 'bold'
         family: 'Press Start 2P'
       )
-    menu.attach selectionChar
+    menu.attach @selectionChar
+    @updateSelection()
 
-    updateSelection = ->
-      selectionChar.attr(
-        y: optionEntities[selected].y
-      )
+    self = this
+    Crafty('Player').each ->
+      @bind 'Up', self._handleUp
+      @bind 'Down', self._handleDown
+      @bind 'Fire', self._handleFire
 
-    updateSelection()
-    executeSelection = ->
-      setTimeout ->
-        if selected is 0
-          Game.togglePause()
-        if selected is 1
-          Crafty.audio.toggleMute()
-          optionEntities[selected].text soundText()
-        if selected is 2
-          Game.togglePause()
-          Game.resetCredits()
-          Crafty('Player').each -> @softReset()
-          Crafty.enterScene Game.firstLevel
-        if selected is 3
-          Game.togglePause()
-          Crafty('Player').each -> @reset()
-          Crafty.enterScene 'Intro'
+  _handleUp: =>
+    @selected = (@options.length + @selected - 1) % @options.length
+    @updateSelection()
 
-    Crafty('Player').each ->
-      @bind 'Up', ->
-        selected = (options.length + selected - 1) % options.length
-        updateSelection()
-      @bind 'Down', ->
-        selected = (options.length + selected + 1) % options.length
-        updateSelection()
-      @bind 'Fire', ->
-        executeSelection()
+  _handleDown: =>
+    @selected = (@options.length + @selected + 1) % @options.length
+    @updateSelection()
+
+  updateSelection: ->
+    @selectionChar.attr(
+      y: @optionEntities[@selected].y
+    )
+
+  _handleFire: =>
+    setTimeout =>
+      if @selected is 0
+        Game.togglePause()
+      if @selected is 1
+        Crafty.audio.toggleMute()
+        @optionEntities[@selected].text @soundText()
+      if @selected is 2
+        Game.togglePause()
+        Game.resetCredits()
+        Crafty('Player').each -> @softReset()
+        Crafty.enterScene Game.firstLevel
+      if @selected is 3
+        Game.togglePause()
+        Crafty('Player').each -> @reset()
+        Crafty.enterScene 'Intro'
 
   showPlayers: ->
     Crafty('Player').each ->

      menu.attach menuItem
      menuItem

    selected = 0

    selectionChar = Crafty.e('2D, DOM, Text')
      .attr(
        x: menu.x + 20
        w: 40

      )
    menu.attach title

    @optionEntities = for o, i in @options
      menuItem = Crafty.e('2D, DOM, Text')
        .attr(
          x: menu.x + 60
