Instantiate model inside camera.js
Unused vars
Remove unused properties and favour tighter scoped temporary variables when possible
Move 'mode' into state model
Docs
Docs and tidy