- Added more tests.
- More refactoring.