refactored page structure