Page initialisation improvements

I have resubmitted this as I still believe that the code tidy up it contains is useful.