Code review

Take a look at each commit and you can see the "diffs".