finish assign3