added some functionalities