improved Particle method interact() and function update_path()