Make Page and Rect public to allow reuse and extension