grader.js now takes either a file or a url as input