using cache and better paging