I think you are missing the point of this change -- with this change here, none of the other checking is necessary in the other routines. At the start of any routine that takes a point you write `p = Point(p)` and the checking is handled here in this `__new__` method. And I can't see it in this view, but at teh start of `__new__` there should be a fast exit so that if the input is already a Point it doesn't go through the check again.