Improving documentation throughout
Tidying test controller a little, applying better model
Minor refactoring tweaks, inlining a method