Initial go at Grunt

Closes #59.