refactor PageHistoryImpl so we can pass an instance of CUstomDataAttributes