more caching
actual distance calc