add APIs from GeoSpawn
minor refactoring