add geolocation functions