Design update and code optimisation
Merge branch 'master' of github.com:revolunet/JSbooks