Cleaned up the code a little - the objects are now contained in the GeoIP namespace instead of being global...