make fetchLocation more robust