merged work by @udezekene into Grunt structure