Changed Point to be extensible

By changing Point to an extensible representation, the type is now more
reusable.