adding functionalities