upsert instead of remove/save