Seems like the flatten should happen once, or even better maybe to just do this in initialize when we set the ivar?