edit to use soft reference cache.