Implement caching at the DAO level