More flexible now, just inherit from ParticleEmitter and implement the makeParticle() function to return the desired particle