There should be some kind of sanity check of the data used to compute post-collision velocities. Implement some optimizations Encapsulate some more concepts like: Collision, Collider, Detector, Scene, ...?