- cleaner solution for problem 9