added more functionalities