Particle implementation and test