page product: refactoring