pull as much logic out of spec and put in page methods