Updated solution for problem 4