added functionalities that were completed