page tree data model