Refactored core API to remove conceptual dependency on Geonames