Added caching as trait.