Problem 9 + Unit Tests