adding and updating