fix multiple events firing