keep selection when source changes