Updated solution for problem 2