use a softcache