new version - adding geoCallback, some refactoring
passing more params to geoCallback, minimizing code