Update in chunks

reduces requirements to ForwardRange