Factoring out Particle into seperate class