Provide page controller as a mixin

Needs a bit of thought