make more use of puzzlelayout class