added functionalities for update and remove