refactor page cache