   scoreKeeper = new ScoreKeeper(robot)
   game = new Game(robot, scoreKeeper)
 
-  robot.hear /^!trivia/, (resp) ->
+  robot.hear /^!t(rivia)?$/, (resp) ->
     game.askQuestion(resp)
 
   robot.hear /^!skip/, (resp) ->

  robot.hear /^!score (.*)/i, (resp) ->
    game.checkScore(resp, resp.match[1])

  robot.hear /!t (top|bottom)( \d+)?/i, (resp) ->
    amount = parseInt(resp.match[2])
    game.leaderBoard(resp, resp.match[1], amount)

  robot.hear /^!hint/i, (resp) ->
    game.hint(resp)

      checkAnswer = checkAnswer.replace /^(a(n?)|the)/g, ""

      if checkGuess.indexOf(checkAnswer) >= 0
        name = resp.envelope.user.name.toLowerCase().trim()
        value = @currentQ.value.replace /[^0-9.-]+/g, ""
        value = parseInt value

        # Compute score as ((answerLength - hintLength)/answerLength) * value
        answerLength = @currentQ.validAnswer.length
        if @hintLength? and @hintLength > 1
            rawAdjustedValue = Math.floor(((answerLength - @hintLength) / answerLength) * value)
            # Round to nearest 100
            adjustedValue = Math.floor(rawAdjustedValue/100)*100
        else
            adjustedValue = value

        resp.reply "YOU ARE CORRECT!!! The answer is #{@currentQ.answer}, you scored #{adjustedValue} points."
        @robot.logger.debug "#{name} answered correctly."
        if adjustedValue != value
            resp.send "Hints Used = #{@hintLength}, original points = #{value}, adjusted points = #{adjustedValue}"

        user = resp.envelope.user.mention_name.toLowerCase().trim()
        newScore = @scoreKeeper.add(user, adjustedValue)
        if newScore? then resp.send "#{user} has a total of #{newScore} points."

        @currentQ = null
        @hintLength = null
