edit listener