Refactored geolocation to server for better performance, fixed lots of bugs