recreated app as a grunt-powered node app