listener update