refactor + Spherical Geometry