added grunt, refactored into objects