broke out geo functions and updated api