       message.send("Spot volume set to #{body}. :mega:")
 
   robot.respond /play (.*)/i, (message) ->
+    playNum = message.match[1].match(/#(\d+)\s*$/)
+    if (playNum)
+      r = getLastResultsRelevantToUser(robot, message.message.user)
+      i = parseInt(playNum[1], 10) - 1
+      if (r && r[i])
+        playTrack(r[i], message)
+        return
+    if (message.match[1].match(/^that$/i))
+      lastSingle = robot.brain.get('lastSingleQuery')
+      if (lastSingle)
+        playTrack(lastSingle, message)
+        return
+      lR = robot.brain.get('lastQueryResults')
+      if (lR && lR.length)
+        playTrack(lR[0], message)
+        return
     params = {q: message.match[1]}
     spotRequest message, '/find', 'post', params, (err, res, body) ->
       message.send(":small_blue_diamond: #{body}")
-  
+
+  robot.respond /album .(\d+)/i, (message) ->
+    r = getLastResultsRelevantToUser(robot, message.message.user)
+    n = parseInt(message.match[1], 10) - 1
+    if (!r || !r[n])
+      message.send(":small_blue_diamon: out of bounds...")
+      return
+    spotRequest message, '/album-info', 'get', {'uri' : r[n].album.uri}, (err, res, body) ->
+      album = JSON.parse(body)
+      album.tracks.forEach((track) ->
+        track.album = track.album || {}
+        track.album.uri = r[n].album.uri
+      )
+      recordUserQueryResults(message, album.tracks)
+      message.send(renderAlbum album)
+
+  robot.respond /(how much )?(time )?(remaining|left)\??$/i, (message) ->
+    spotRequest message, '/how-much-longer', 'get', {}, (err, res, body) ->
+      message.send(":small_blue_diamond: #{body}")
+
+  robot.respond /query (.*)/i, (message) ->
+    params = {q: message.match[1]}
+    spotRequest message, '/single-query', 'get', params, (err, res, body) ->
+      track = JSON.parse(body)
+      robot.brain.set('lastSingleQuery', track)
+      message.send(":small_blue_diamond: I found:")
+      message.send(explain track)
+
+  robot.respond /find ?(\d+)? music (.*)/i, (message) ->
+    limit = message.match[1] || 3
+    params = {q: message.match[2]}
+    spotRequest message, '/query', 'get', params, (err, res, body) ->
+      try
+        data = JSON.parse(body)
+        if (data.length > limit)
+          data = data.slice(0, limit)
+        robot.brain.set('lastQueryResults', data)
+        robot.brain.set('lastQueryTime', now())
+        recordUserQueryResults(message, data)
+        showResults(robot, message, data)
+      catch error
+        message.send(":small_blue_diamond: :flushed: " + error.message)
+
+  robot.respond /last find\??/i, (message) ->
+    data = robot.brain.get 'lastQueryResults'
+    if (!data || data.length == 0)
+      message.send(":small_blue_diamond: I got nothin'")
+      return
+    recordUserQueryResults(message, data)
+    showResults(robot, message, data)
+
   robot.respond /say (.*)/i, (message) ->
     what = message.match[1]
     params = {what: what}
     spotRequest message, '/say', 'put', params, (err, res, body) ->
       message.send(what)
+
+  robot.respond /say me/i, (message) ->
+    message.send('no way ' + message.message.user.name);
 
   robot.respond /(.*) says.*turn.*down.*/i, (message) ->
     name = message.match[1]

#   hubot play back - Plays the previous song.
#   hubot playing? - Returns the currently-played song.
#   hubot play <song> - Play a particular song. This plays the first most popular result.
#   hubot volume? - Returns the current volume level.
#   hubot volume [0-100] - Sets the volume.
#   hubot volume+ - Bumps the volume.

      message.send("#{URL}/playing.png")
      message.send(":notes:  #{body}")

  robot.respond /album art\??/i, (message) ->
    spotRequest message, '/playing', 'get', {}, (err, res, body) ->
      message.send("#{URL}/playing.png")

  robot.respond /volume\?/i, (message) ->
    spotRequest message, '/volume', 'get', {}, (err, res, body) ->
      message.send("Spot volume is #{body}. :mega:")
