further work on user geo function