finish function 7 and 8