fully implement grunt task