ENH: Added caching.