I am actually very confused by how the `Manifest` should work on this case as well. But I think you are correct that adding the `Manifest` to the class level would better solve this problem. Will change it. Thank you.

On the explanation part, this is the pure result of several attempts of getting it to compile by `scala`. Somehow this not only compiled but also passed all the tests.   

I am still trying to learn `scala`, so sorry about the very naive way of doing things.