Factory constructor with parameters for each dimension
factory Point(double x, double y, [double z = 0]) { return Point._(x, y, z); }