try implementing the geolocation stuff the right way