Polymorphic particles and repelling (phew)
break out classes to different files