finish problem2
finish problem 3