handle preference addtional/deletion better