add grunt & jshint to ensure code quality