singlepageview with end to end func