abstract add particle