Mostly done with problem 17