since all pages can have widgets now, we need to make this a mixin