fix for sync vs async running, no longer blocking or at risk of concurrentmodificationexceptions (hopefully). not exactly known if this is the best way to do it, but was the one that seemed to be the most clear. if anyone knows of a better way, pull request away\!