Expressing statements with quantifiers and predicate functions

The problem states:

Express this statement in the terms of a quantifier:
There is a major such that there is a student in the class
in every year of study with that major.


My response was:

∃x∃y∀z [x=major y=student z=year]


The graders response was that I needed a predicate function and that my logic was incorrect.

If i changed it to:

∃x∃y∀z(InClass(xyz)) [x=major y=student z=year]


would that satisfy the need for a predicate function? Or do I need to be more explicit?

I still dont see that my logic is incorrect. What am I missing?

-

$\exists m \forall y \exists s[\mbox{InClass}(s) \wedge \mbox{Major}(s,m) \wedge \mbox{Year}(s,y)]$
That reads "there exists a major, and for all years, there exists a student in class, whose major is $m$ and whose years is $y$. Note how everything is in predicate form. Note also the contextual meaning of the problem. There is no student who is in every year of study for major $m$, as suggested by your sentence. That would be silly, besides violating school policy. Rather, there is a separate student for each year.