 
   updateSelection: ->
     @selectionChar.attr(
-      y: @optionEntities[@selected].y
+      y: @options[@selected].entity.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'
+      selected = @options[@selected]
+      selected.execute()
+      selected.entity.text(selected.text?() ? selected.text)
 
   showPlayers: ->
     Crafty('Player').each ->

      )
    menu.attach title

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

          family: 'Press Start 2P'
        )
      menu.attach menuItem
      o.entity = menuItem

    @selected = 0

