Reverting to the state of teh project at dd80801494
add method dot/2: p1.dot(p2) = p1.x * p2.x, p1.y * p2.y
Fixed merge conflicts