refactor to use nodejs and grunt