Adding plenty of unit tests.