added cached invalidation