Closed #3427: add some public function to event manager and hide some event listener to private

Add some public function to event manager and hide some event listener to private