update listener