[fix] assign event handlers only once