It comes down to how to structure the object. Would it be an object per element token, with a collection of events, each event with a collection of handlers? That would be faster to get all the events for one element, but no good to get all the events for one namespace. Reality is that so long as we don't expose the actual data structure and provide suitable methods on the cache then we can swap it out at will if we feel the need.