finished grader with async url and file functions