some structure changes / add code coverage / codestyle / jshint