added Point3D type double