refactor location_info API