auto-grading version of snap