Further tidying up, including new PageCacher class.