Refactor and redo PDFPage