Original plugin.
Added caching.