more algorithms
rework client api to support batch requests