added more functionalities.