add item and update item