better style, add Grunt task