changed underlying particle data structure to include arbitrary data
field, improved encapsulation