refactor to have page_content separate