changed geolocation logic