DRY.
Add tests TODO.