Challenge 5 is done except for some error checking an such