lots of cleanup for adding events