added particles again. refactored