* Refactor. Better naming.
* Refactor.

Makes perfect sense to separate public and private methods into two sections.
When I'm trying to understand how it works, it's enough to look at the public
methods.