first round of ParticleSystem optimizations