implemented workaround for multiple events firing