updated functionalities