update and delete functionalities