finish assign3 finally