State events for pages

Too much knowledge of the model's implementation going on here - can we move this to the model?