through problem 8