Moves some logic out of getGrade() into other methods