Refactor geolocation method with completion block to ensure data is saved after location is obtained