refactoring particles