tried to implement data particles.  untested though.