I am still (after talking about it) not a fan of this anonymous class.

I think changing the type of `CollectionItems` to `Collection` and then have two `case class`es extending that with different functionality clearer and easier to trace. It's basically just giving your anonymous class a name, and no weird dynamic mixing in.