       if input.length < 2
         return sendError(robot, res, 'Please specify which vendor you\'re looking up bounties for.')
 
-      vendors = constants.BOUNTY_VENDORS[input[1]]
+      vendors = Constants.BOUNTY_VENDORS[input[1]]
       if !vendors
         return sendError(robot, res, "Unable to locate vendor: #{input[1]}")
 
-      itemCategoriesPromises = []
+      bountyItems = []
+      remainingIteration = vendors.length
       for vendorHash in vendors
-        deferred = new Deferred()
         getVendorSaleItemCategories(res, vendorHash).then (saleItemCategories) ->
           for category in saleItemCategories
-            if category.categoryIndex in constants.BOUNTIES_CATEGORY_INDICES
-              return deferred.resolve(category.salesItems)
+            if category.categoryIndex in Constants.BOUNTIES_CATEGORY_INDICES
+              bountyItems.push category.salesItems...
+              --remainingIteration
+
+              if remainingIteration is 0
+                console.log 'bountyItems = '
+                console.log bountyItems
+                # getItem(res, item.itemHash).then (itemDetails) ->
+                #   return
+                # , (err) ->
+                #   return sendError(robot.res, err)
+
         , (err) ->
-          return deferred.reject(err)
-        itemCategoriesPromises.push deferred.promise
-
-      when.all(itemCategoriesPromises).done (bountyItems) ->
-        console.log 'bountyItems = '
-        console.log bountyItems
-
-          # getItem(res, item.itemHash).then (itemDetails) ->
-          #   return
-          # , (err) ->
-          #   return sendError(robot.res, err)
+          -- remainingIteration
 
     else
       # command not recognized. Lists all available commands
       message = "Available commands are:\n"
-      for command in constants.COMMANDS
+      for command in Constants.COMMANDS
         message += "`#{command}`\n"
       message += "\n#{helpText}"
       return sendError(robot, res, message)

      console.log 'No activity details found'
      return deferred.reject('No activity details found')

    if activityKey not in constants.FURTHER_DETAILS
      console.log "Resolving activity details for #{activityKey}:"
      console.log activityDetails
      return deferred.resolve(activityDetails)


sendHelp = (robot, res) ->
  message = "Available commands are:\n"
  for command in Constants.COMMANDS
    message += "`#{command}`\n"
  message += "\n#{helpText}"

