 					dir: @savePath
 					base: projInfo.title
 
-				@saveImage x.image_url, savePath
+				@saveImage x.image_url, savePath, callback
 
-		downloadAllUserLikes: () ->
+		downloadAllUserLikes: (callback) =>
 			for user in @usernames
 				@getUserLikes user, (likes) =>
-					like = likes[0]
-					@downloadProjectImage like.hash_id
+					i = 0
+					likes = (like.hash_id for like in likes)
+					if @limit > 0 and likes.length > @limit
+						likes = likes.slice 0, @limit
+					async.eachLimit likes, 5, @downloadProjectImage, (err) =>
+						if @debug
+							console.log 'Downloading done'
+						if callback?
+							callback err

						result = result.concat x
					callback result

		saveImage: (url, savePath) ->
			if @debug
				console.log 'saving image: ' + savePath
			req = request url
			req.pipe fs.createWriteStream savePath

		downloadProjectImage: (projectHash) ->
			@getProjectInfo projectHash, (projInfo) =>
				asset = null
				for x in projInfo.assets when x.has_image


			@done = false

		getJson: (url, callback) =>
			if @debug
				console.log 'json req: ' + url

