use argument observer when adding and removing