through problem 3