solution for problem #4