particle streaming is in it's own class