Do we really need another buffered queue for something which is just a "last-write-wins" replacement? It looks like this buffering is only needed now that you deleted the second `for{ select{} }` in `runIteration` because now stuff might buffer up for the duration of an entire target list scrape. I'm thinking, either add that back or we could instead make a copy of the target list before scraping and then set the target list directly in the add and replace methods? But then the target list would probably need to contain target pointers, since the targets modify their state during scrape. Hummm...