Problem 9 + 10 + Unit Tests