Finished recursive implementation with tests.