Modified solution for problem 3