This effectively changes the API of this method.  The current version allows for, e.g., `p1.is_collinear(p2, p3)` to check for three points at once, but the change here would instead make that only check `p2` and `p3`, causing it to always return True.  Further, I don't see how making this a classmethod could be required to have the exception raise; that should probably get a closer look.  But if it is necessary, it would make sense to change the signature to `is_collinear(cls, *points)` so as to clarify the method's meaning and avoid the change below.