done with automatic page generation