using double precision for locations