updated solution to problem 42