publisher add event listeners