Improved geo functions