In fact, why not just have a singe `grade` function with an outer `commit_on_success` decorator?