fixed with latest exposure
use an observer for cache expiration instead of a sweeper