PageFactory

Initial version of the pageFactory has been created. This uses the
factory design method in order to generate page content. More changes
to come to integrate this with existing code.