implement all pages