interface Point, abstract class AbstractPoint, classes MutablePoint & ImmutablePoint