added geo function