smarter versions of add_to and remove_from