adding object pooling to particleManager