Overhaul ParticleEffect utility