implement .add and .remove