finish problem_eight and its tests
finish problem_eight and its tests