store cache on first fetch, expire on update
update test to ensure cache update