tuned add_range, use operator= for replacement, changed API