A lot of this doesn't make sense. Why does the setRoll() method take a parameter that it never uses? When is that method ever called?

I suggest stepping through this in your head and figuring out...