refact paginator (possibly break all)