prevent events firing more multiple times