working function 1,2,3,4,7