Try a different approach to handling events