added geolocation functions