added ParticleSystem class