Allow a different page model to be plugged in.
Merge branch 'custom-page-model' into jvdp-master