I'm not sure why the changes from point.[xy] to point[XY] were needed.  Was it just to optimize the property access to local variables or was there something else going on there?