updated the functionalities