add smart pagination