refactored geolocation stuff into a separate module.
Geolocation refactor