These three files (PointDD1.cs, PointDD2.cs, and PointDD3.cs) change the numerical interface between Points and base Number types to use double dispatching. It is basically the "next step" after having changed the core math to use double dispatching. Consequently, as a PREREQUISITE, you MUST add the MathDD (Math Double Dispatching) stuff FIRST. In addition to adding double dispatching for Point, these files also serve two other purposes. They try where appropriate, to add all of the same mathematical and truncation functions from Number that are appropriate (e.g. floor, roundedTo:, log, exp, etc). Some of these methods existed already, but most of the implementations are changed to achieve the other purpose - to get rid of the assumption that Point is at the top of any number heirarchy (IOW, arguments are not coerced to Points). This is done to allow the addition of other double dispatching numerical types to be added to the system. In retrospect, 'twould have been easier to make Point a subclass of Number. I may do that in a future version if the Squeak community thinks it's a good idea. The update must be done in stages (three of them), since some methods (changed or added) depend on other prerequisite changes/additions being made to Point. So... MAKE SURE that you file these three files in PointDD.{1,2,3} order.