REFACTOR FIRST

By putting commit(s) that refactor before commit(s) that contain the change the actual change can be kept as small as possible.

Give me six commits to implement a feature and I will spend the first four preparing for the feature


Let the refactor commit(s) rearrange the code carving out a perfectly sized hole where the new functionality fits perfectly.
This will make sure that the commit that add new functionality is as small as possible, making it easier to review.