add geo middleware