   robot.respond /play (.*)/i, (message) ->
     playNum = message.match[1].match(/#(\d+)\s*$/)
     if (playNum)
-      r = robot.brain.get 'lastQueryResults'
+      r = getLastResultsRelevantToUser(robot, message.message.user)
       i = parseInt(playNum[1], 10) - 1
-      if (r[i])
+      if (r && r[i])
         playTrack(r[i], message)
         return
     if (message.match[1].match(/^that$/i))

    'Length: ' + calcLength(data.length)
    ].join("\n")

render = (explanations) ->
  str = "I found:\n"
  for exp, i in explanations
    str += '#' + (i + 1) + "\n" + exp + "\n"
  return str

setResults = (robot, results) ->
  robot.brain.set('lastQueryResults', results)

showResults = (robot, message) ->
  data = robot.brain.get 'lastQueryResults'
  explanations = (explain track for track in data)
  return message.send(render(explanations))

calcLength = (seconds) ->

        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)

