tweak select logic to ensure old unselect fires before new select