add toggle listener