updated solution for problem 5