change structure and add grunt