reworked add/remove