add geolocation functionality