still need to chain geo functions using promises