Revised for intended structure and to use grunt