Particle rework: added ShapeParticle and ImageParticle