A whole big nice round of tweaks after comments from @willdurand

More changes will come - some required going through and tweaking the project first