[Events] Implement event system