worked on free variable grading