adjust the firstpage, and let firstpage include report page, divide the
function with interface