almost with pagination, but with generic search