add all the function from assignment/project 4