Lots of work on the code structure.
Docs.