cache the result. significant improvements.