Geolocation update

Much cleaner now. still needs a refactor and modularise.

closes #36
closes #12
Merge branch 'autoregion' into develop