         e && e.preventDefault() && e.stopPropagation()
 
     # Abstract this polling functionality out for use in both checkMpu and hideEmpty
-    poll : (adEl, callback) ->
+    poll : (adEl, callback, id) ->
       count = 0
       maxPoll = 15000 # The maximum amount of milliseconds to poll for
       timeout = 250
-
       # Ugly but necessary. DOM Mutation events are deprecated, and there's not enough support for MutationObserver yet so we have to poll.
-      poll = window.setInterval ->
+      adManager.polls["poll" + id] = window.setInterval ->
         count++
 
         # Make sure we're not running this thing indefinitely
         if (count >= maxPoll/timeout)
-          window.clearInterval poll
+          window.clearInterval adManager.polls["poll" + id]
           return
 
         $(adEl).find('iframe').each ->
           iframe = $(this)
           contents = iframe.contents()
-
           # If something's been loaded into our ad element, we're good to go
           if adEl.style.display isnt 'none' and !!contents.find('body').html()
 
-            window.clearInterval poll
+            window.clearInterval adManager.polls["poll" + id]
 
             if not adManager.firstLoaded and window.lp and lp.fs and lp.fs.time
               window.lp.fs.time(

      iframe.style.width = "#{_config.unit[0]}px"
      iframe.style.height = "#{_config.unit[1]}px"
      s = document.getElementById(_target)
      s.appendChild(iframe)

    adUnits: {}
    firstLoaded: false
    polls: {}


    init : () ->

      @addEvents()
      # GPT Boilerplate code
      window.googletag = window.googletag || {}
      googletag.cmd = googletag.cmd || []
