simplify dynamic page creation