Improve Event handling