add geo locating function