finish problem 45
finish problem 46