Split the ModelController and ForceParticle into Base and Caching types