problem 1 and 2
problem 3
problem 4