Ok I think the `ExpandWeight` can be injected via a factory. This factory can push down the whole collect and clear stats so we dont have to worry about it here. In addition, we could make it a const instead. I'm still a little concerned about the mutable state that ExpandWeight now has.