Properly remove previous listeners when changing expression