base page refactoring