 
     for own reason, items of reasons
       intersection = _.intersection items, @failedPings
-      if _.size(intersection) is _.size(items)
+      if intersection.length is items.length
         @emit reason, _.first(@failedPings)
         @notify reason
         log reason

    log  "all's well on western front"
    @emit 'internetUp'

  printReport: ->
    for own name, item of @itemsToMonitor
      log name, item.getResponseTime()

  run: ->
    for own name, item of @itemsToMonitor
      item.once "finish", (i, n) =>
        @emit "pingDone", i, n

        @emit "allDone"

    @on "allDone", ->
      #@emitStatus()
      @reset()

    @on "internetDown", ->
