may as well roll these two `divideScalar`s up into a single `divideScalar(direction.length() * distance_factor)` since each divide scalar really applies 3 divides (so we can go from 6 divides to 3)