* Much better code.
* Tests belong to another module.
* Fix naming.
* Separate method for testing.