problem 3
problem 4