updated solution to problem 2