Better code quality and more tests

you can keep this as just `jshint` btw, no need for `node_modules`. npm automatically figures this out