implemented some functionalities