Page model alternatives:
“Journey” or “Screenplay’ pattern
https://www.infoq.com/articles/Beyond-Page-Objects-Test-Automation-Serenity-Screenplay
A weak Journey example: http://javing.blogspot.co.nz/2015/12/selenium-automation-design-pattern.html
SOLID:
https://ideas.riverglide.com/page-objects-refactored-12ec3541990#.ac0o42osj
http://michaelpavlakcoding.blogspot.co.nz/2016/06/decomposing-page-objects.html
https://confengine.com/selenium-conf-2014/proposal/348/design-patterns-beyond-the-page-object-an-investigation-into-the-design-patterns-used-while-building-page-objects
State modeling:
http://queue.acm.org/detail.cfm?id=2793039