refactor PageManager system