add some more functionalities