change to event listeners