Updated solution to problem 4.