new WebPage abstraction