problem 1
problem 2
Problem 3