create abstract speed and direction
introduce speed vector
introduce 2d case
introduce impactHandler & impact rules