add jshint support
add tests
add coverage