add geo function