functionalities are implemented except getting info from user