better approach to handling event listener removals mid-loop - copy handlers array before looping so that any .once() handlers dont mess up the count