redoing caching in an experimental way