paginate and generate on the fly. not user safe.